% TIMEFORMAT='%3R'; { time (exec 2>&1; /home/martin/bin/satallax -E /home/martin/.isabelle/contrib/e-2.5-1/x86_64-linux/eprover -p tstp -t 5 /home/martin/judgement-day/tptp-thf/tptp/FFT/prob_402__3226492_1 ) ; }
% This file was generated by Isabelle (most likely Sledgehammer)
% 2020-12-16 14:10:59.460

% Could-be-implicit typings (2)
thf(ty_n_t__Nat__Onat, type,
    nat : $tType).
thf(ty_n_tf__a, type,
    a : $tType).

% Explicit typings (17)
thf(sy_c_Groups_Oone__class_Oone_001t__Nat__Onat, type,
    one_one_nat : nat).
thf(sy_c_Groups_Oone__class_Oone_001tf__a, type,
    one_one_a : a).
thf(sy_c_Groups_Oplus__class_Oplus_001t__Nat__Onat, type,
    plus_plus_nat : nat > nat > nat).
thf(sy_c_Groups_Oplus__class_Oplus_001tf__a, type,
    plus_plus_a : a > a > a).
thf(sy_c_Groups_Otimes__class_Otimes_001t__Nat__Onat, type,
    times_times_nat : nat > nat > nat).
thf(sy_c_Groups_Otimes__class_Otimes_001tf__a, type,
    times_times_a : a > a > a).
thf(sy_c_Groups_Ozero__class_Ozero_001t__Nat__Onat, type,
    zero_zero_nat : nat).
thf(sy_c_Groups_Ozero__class_Ozero_001tf__a, type,
    zero_zero_a : a).
thf(sy_c_Orderings_Oord__class_Oless_001t__Nat__Onat, type,
    ord_less_nat : nat > nat > $o).
thf(sy_c_Power_Opower__class_Opower_001t__Nat__Onat, type,
    power_power_nat : nat > nat > nat).
thf(sy_c_Power_Opower__class_Opower_001tf__a, type,
    power_power_a : a > nat > a).
thf(sy_c_Rings_Odivide__class_Odivide_001t__Nat__Onat, type,
    divide_divide_nat : nat > nat > nat).
thf(sy_c_Rings_Odivide__class_Odivide_001tf__a, type,
    divide_divide_a : a > a > a).
thf(sy_v_a, type,
    a2 : a).
thf(sy_v_i, type,
    i : nat).
thf(sy_v_j, type,
    j : nat).
thf(sy_v_k, type,
    k : nat).

% Relevant facts (166)
thf(fact_0_mult__divide__mult__cancel__left__if, axiom,
    ((![C : a, A : a, B : a]: (((C = zero_zero_a) => ((divide_divide_a @ (times_times_a @ C @ A) @ (times_times_a @ C @ B)) = zero_zero_a)) & ((~ ((C = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ C @ A) @ (times_times_a @ C @ B)) = (divide_divide_a @ A @ B))))))). % mult_divide_mult_cancel_left_if
thf(fact_1_nonzero__mult__divide__mult__cancel__left, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ C @ A) @ (times_times_a @ C @ B)) = (divide_divide_a @ A @ B)))))). % nonzero_mult_divide_mult_cancel_left
thf(fact_2_nonzero__mult__div__cancel__left, axiom,
    ((![A : a, B : a]: ((~ ((A = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ A @ B) @ A) = B))))). % nonzero_mult_div_cancel_left
thf(fact_3_nonzero__mult__div__cancel__left, axiom,
    ((![A : nat, B : nat]: ((~ ((A = zero_zero_nat))) => ((divide_divide_nat @ (times_times_nat @ A @ B) @ A) = B))))). % nonzero_mult_div_cancel_left
thf(fact_4_nonzero__mult__divide__mult__cancel__left2, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ C @ A) @ (times_times_a @ B @ C)) = (divide_divide_a @ A @ B)))))). % nonzero_mult_divide_mult_cancel_left2
thf(fact_5_nonzero__mult__divide__mult__cancel__right, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ A @ C) @ (times_times_a @ B @ C)) = (divide_divide_a @ A @ B)))))). % nonzero_mult_divide_mult_cancel_right
thf(fact_6_nonzero__mult__div__cancel__right, axiom,
    ((![B : a, A : a]: ((~ ((B = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ A @ B) @ B) = A))))). % nonzero_mult_div_cancel_right
thf(fact_7_nonzero__mult__div__cancel__right, axiom,
    ((![B : nat, A : nat]: ((~ ((B = zero_zero_nat))) => ((divide_divide_nat @ (times_times_nat @ A @ B) @ B) = A))))). % nonzero_mult_div_cancel_right
thf(fact_8_nonzero__mult__divide__mult__cancel__right2, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => ((divide_divide_a @ (times_times_a @ A @ C) @ (times_times_a @ C @ B)) = (divide_divide_a @ A @ B)))))). % nonzero_mult_divide_mult_cancel_right2
thf(fact_9_div__mult__mult1, axiom,
    ((![C : nat, A : nat, B : nat]: ((~ ((C = zero_zero_nat))) => ((divide_divide_nat @ (times_times_nat @ C @ A) @ (times_times_nat @ C @ B)) = (divide_divide_nat @ A @ B)))))). % div_mult_mult1
thf(fact_10_div__mult__mult2, axiom,
    ((![C : nat, A : nat, B : nat]: ((~ ((C = zero_zero_nat))) => ((divide_divide_nat @ (times_times_nat @ A @ C) @ (times_times_nat @ B @ C)) = (divide_divide_nat @ A @ B)))))). % div_mult_mult2
thf(fact_11_div__mult__mult1__if, axiom,
    ((![C : nat, A : nat, B : nat]: (((C = zero_zero_nat) => ((divide_divide_nat @ (times_times_nat @ C @ A) @ (times_times_nat @ C @ B)) = zero_zero_nat)) & ((~ ((C = zero_zero_nat))) => ((divide_divide_nat @ (times_times_nat @ C @ A) @ (times_times_nat @ C @ B)) = (divide_divide_nat @ A @ B))))))). % div_mult_mult1_if
thf(fact_12_times__divide__eq__left, axiom,
    ((![B : a, C : a, A : a]: ((times_times_a @ (divide_divide_a @ B @ C) @ A) = (divide_divide_a @ (times_times_a @ B @ A) @ C))))). % times_divide_eq_left
thf(fact_13_times__divide__eq__right, axiom,
    ((![A : a, B : a, C : a]: ((times_times_a @ A @ (divide_divide_a @ B @ C)) = (divide_divide_a @ (times_times_a @ A @ B) @ C))))). % times_divide_eq_right
thf(fact_14_mult__cancel__right, axiom,
    ((![A : nat, C : nat, B : nat]: (((times_times_nat @ A @ C) = (times_times_nat @ B @ C)) = (((C = zero_zero_nat)) | ((A = B))))))). % mult_cancel_right
thf(fact_15_mult__cancel__right, axiom,
    ((![A : a, C : a, B : a]: (((times_times_a @ A @ C) = (times_times_a @ B @ C)) = (((C = zero_zero_a)) | ((A = B))))))). % mult_cancel_right
thf(fact_16_mult__cancel__left, axiom,
    ((![C : nat, A : nat, B : nat]: (((times_times_nat @ C @ A) = (times_times_nat @ C @ B)) = (((C = zero_zero_nat)) | ((A = B))))))). % mult_cancel_left
thf(fact_17_mult__cancel__left, axiom,
    ((![C : a, A : a, B : a]: (((times_times_a @ C @ A) = (times_times_a @ C @ B)) = (((C = zero_zero_a)) | ((A = B))))))). % mult_cancel_left
thf(fact_18_mult__eq__0__iff, axiom,
    ((![A : nat, B : nat]: (((times_times_nat @ A @ B) = zero_zero_nat) = (((A = zero_zero_nat)) | ((B = zero_zero_nat))))))). % mult_eq_0_iff
thf(fact_19_mult__eq__0__iff, axiom,
    ((![A : a, B : a]: (((times_times_a @ A @ B) = zero_zero_a) = (((A = zero_zero_a)) | ((B = zero_zero_a))))))). % mult_eq_0_iff
thf(fact_20_mult__zero__right, axiom,
    ((![A : nat]: ((times_times_nat @ A @ zero_zero_nat) = zero_zero_nat)))). % mult_zero_right
thf(fact_21_mult__zero__right, axiom,
    ((![A : a]: ((times_times_a @ A @ zero_zero_a) = zero_zero_a)))). % mult_zero_right
thf(fact_22_mult__zero__left, axiom,
    ((![A : nat]: ((times_times_nat @ zero_zero_nat @ A) = zero_zero_nat)))). % mult_zero_left
thf(fact_23_mult__zero__left, axiom,
    ((![A : a]: ((times_times_a @ zero_zero_a @ A) = zero_zero_a)))). % mult_zero_left
thf(fact_24_division__ring__divide__zero, axiom,
    ((![A : a]: ((divide_divide_a @ A @ zero_zero_a) = zero_zero_a)))). % division_ring_divide_zero
thf(fact_25_divide__cancel__right, axiom,
    ((![A : a, C : a, B : a]: (((divide_divide_a @ A @ C) = (divide_divide_a @ B @ C)) = (((C = zero_zero_a)) | ((A = B))))))). % divide_cancel_right
thf(fact_26_divide__cancel__left, axiom,
    ((![C : a, A : a, B : a]: (((divide_divide_a @ C @ A) = (divide_divide_a @ C @ B)) = (((C = zero_zero_a)) | ((A = B))))))). % divide_cancel_left
thf(fact_27_div__by__0, axiom,
    ((![A : a]: ((divide_divide_a @ A @ zero_zero_a) = zero_zero_a)))). % div_by_0
thf(fact_28_div__by__0, axiom,
    ((![A : nat]: ((divide_divide_nat @ A @ zero_zero_nat) = zero_zero_nat)))). % div_by_0
thf(fact_29_divide__eq__0__iff, axiom,
    ((![A : a, B : a]: (((divide_divide_a @ A @ B) = zero_zero_a) = (((A = zero_zero_a)) | ((B = zero_zero_a))))))). % divide_eq_0_iff
thf(fact_30_div__0, axiom,
    ((![A : a]: ((divide_divide_a @ zero_zero_a @ A) = zero_zero_a)))). % div_0
thf(fact_31_div__0, axiom,
    ((![A : nat]: ((divide_divide_nat @ zero_zero_nat @ A) = zero_zero_nat)))). % div_0
thf(fact_32_div__mult2__eq, axiom,
    ((![M : nat, N : nat, Q : nat]: ((divide_divide_nat @ M @ (times_times_nat @ N @ Q)) = (divide_divide_nat @ (divide_divide_nat @ M @ N) @ Q))))). % div_mult2_eq
thf(fact_33_mult__right__cancel, axiom,
    ((![C : nat, A : nat, B : nat]: ((~ ((C = zero_zero_nat))) => (((times_times_nat @ A @ C) = (times_times_nat @ B @ C)) = (A = B)))))). % mult_right_cancel
thf(fact_34_mult__right__cancel, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => (((times_times_a @ A @ C) = (times_times_a @ B @ C)) = (A = B)))))). % mult_right_cancel
thf(fact_35_mult__left__cancel, axiom,
    ((![C : nat, A : nat, B : nat]: ((~ ((C = zero_zero_nat))) => (((times_times_nat @ C @ A) = (times_times_nat @ C @ B)) = (A = B)))))). % mult_left_cancel
thf(fact_36_mult__left__cancel, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => (((times_times_a @ C @ A) = (times_times_a @ C @ B)) = (A = B)))))). % mult_left_cancel
thf(fact_37_no__zero__divisors, axiom,
    ((![A : nat, B : nat]: ((~ ((A = zero_zero_nat))) => ((~ ((B = zero_zero_nat))) => (~ (((times_times_nat @ A @ B) = zero_zero_nat)))))))). % no_zero_divisors
thf(fact_38_no__zero__divisors, axiom,
    ((![A : a, B : a]: ((~ ((A = zero_zero_a))) => ((~ ((B = zero_zero_a))) => (~ (((times_times_a @ A @ B) = zero_zero_a)))))))). % no_zero_divisors
thf(fact_39_divisors__zero, axiom,
    ((![A : nat, B : nat]: (((times_times_nat @ A @ B) = zero_zero_nat) => ((A = zero_zero_nat) | (B = zero_zero_nat)))))). % divisors_zero
thf(fact_40_divisors__zero, axiom,
    ((![A : a, B : a]: (((times_times_a @ A @ B) = zero_zero_a) => ((A = zero_zero_a) | (B = zero_zero_a)))))). % divisors_zero
thf(fact_41_mult__not__zero, axiom,
    ((![A : nat, B : nat]: ((~ (((times_times_nat @ A @ B) = zero_zero_nat))) => ((~ ((A = zero_zero_nat))) & (~ ((B = zero_zero_nat)))))))). % mult_not_zero
thf(fact_42_mult__not__zero, axiom,
    ((![A : a, B : a]: ((~ (((times_times_a @ A @ B) = zero_zero_a))) => ((~ ((A = zero_zero_a))) & (~ ((B = zero_zero_a)))))))). % mult_not_zero
thf(fact_43_divide__divide__eq__left_H, axiom,
    ((![A : a, B : a, C : a]: ((divide_divide_a @ (divide_divide_a @ A @ B) @ C) = (divide_divide_a @ A @ (times_times_a @ C @ B)))))). % divide_divide_eq_left'
thf(fact_44_divide__divide__times__eq, axiom,
    ((![X : a, Y : a, Z : a, W : a]: ((divide_divide_a @ (divide_divide_a @ X @ Y) @ (divide_divide_a @ Z @ W)) = (divide_divide_a @ (times_times_a @ X @ W) @ (times_times_a @ Y @ Z)))))). % divide_divide_times_eq
thf(fact_45_divide__divide__eq__right, axiom,
    ((![A : a, B : a, C : a]: ((divide_divide_a @ A @ (divide_divide_a @ B @ C)) = (divide_divide_a @ (times_times_a @ A @ C) @ B))))). % divide_divide_eq_right
thf(fact_46_times__divide__times__eq, axiom,
    ((![X : a, Y : a, Z : a, W : a]: ((times_times_a @ (divide_divide_a @ X @ Y) @ (divide_divide_a @ Z @ W)) = (divide_divide_a @ (times_times_a @ X @ Z) @ (times_times_a @ Y @ W)))))). % times_divide_times_eq
thf(fact_47_divide__divide__eq__left, axiom,
    ((![A : a, B : a, C : a]: ((divide_divide_a @ (divide_divide_a @ A @ B) @ C) = (divide_divide_a @ A @ (times_times_a @ B @ C)))))). % divide_divide_eq_left
thf(fact_48_nonzero__eq__divide__eq, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => ((A = (divide_divide_a @ B @ C)) = ((times_times_a @ A @ C) = B)))))). % nonzero_eq_divide_eq
thf(fact_49_nonzero__divide__eq__eq, axiom,
    ((![C : a, B : a, A : a]: ((~ ((C = zero_zero_a))) => (((divide_divide_a @ B @ C) = A) = (B = (times_times_a @ A @ C))))))). % nonzero_divide_eq_eq
thf(fact_50_eq__divide__imp, axiom,
    ((![C : a, A : a, B : a]: ((~ ((C = zero_zero_a))) => (((times_times_a @ A @ C) = B) => (A = (divide_divide_a @ B @ C))))))). % eq_divide_imp
thf(fact_51_divide__eq__imp, axiom,
    ((![C : a, B : a, A : a]: ((~ ((C = zero_zero_a))) => ((B = (times_times_a @ A @ C)) => ((divide_divide_a @ B @ C) = A)))))). % divide_eq_imp
thf(fact_52_eq__divide__eq, axiom,
    ((![A : a, B : a, C : a]: ((A = (divide_divide_a @ B @ C)) = (((((~ ((C = zero_zero_a)))) => (((times_times_a @ A @ C) = B)))) & ((((C = zero_zero_a)) => ((A = zero_zero_a))))))))). % eq_divide_eq
thf(fact_53_divide__eq__eq, axiom,
    ((![B : a, C : a, A : a]: (((divide_divide_a @ B @ C) = A) = (((((~ ((C = zero_zero_a)))) => ((B = (times_times_a @ A @ C))))) & ((((C = zero_zero_a)) => ((A = zero_zero_a))))))))). % divide_eq_eq
thf(fact_54_frac__eq__eq, axiom,
    ((![Y : a, Z : a, X : a, W : a]: ((~ ((Y = zero_zero_a))) => ((~ ((Z = zero_zero_a))) => (((divide_divide_a @ X @ Y) = (divide_divide_a @ W @ Z)) = ((times_times_a @ X @ Z) = (times_times_a @ W @ Y)))))))). % frac_eq_eq
thf(fact_55_bits__div__by__0, axiom,
    ((![A : nat]: ((divide_divide_nat @ A @ zero_zero_nat) = zero_zero_nat)))). % bits_div_by_0
thf(fact_56_bits__div__0, axiom,
    ((![A : nat]: ((divide_divide_nat @ zero_zero_nat @ A) = zero_zero_nat)))). % bits_div_0
thf(fact_57_nat__mult__div__cancel__disj, axiom,
    ((![K : nat, M : nat, N : nat]: (((K = zero_zero_nat) => ((divide_divide_nat @ (times_times_nat @ K @ M) @ (times_times_nat @ K @ N)) = zero_zero_nat)) & ((~ ((K = zero_zero_nat))) => ((divide_divide_nat @ (times_times_nat @ K @ M) @ (times_times_nat @ K @ N)) = (divide_divide_nat @ M @ N))))))). % nat_mult_div_cancel_disj
thf(fact_58_mult__cancel2, axiom,
    ((![M : nat, K : nat, N : nat]: (((times_times_nat @ M @ K) = (times_times_nat @ N @ K)) = (((M = N)) | ((K = zero_zero_nat))))))). % mult_cancel2
thf(fact_59_mult__cancel1, axiom,
    ((![K : nat, M : nat, N : nat]: (((times_times_nat @ K @ M) = (times_times_nat @ K @ N)) = (((M = N)) | ((K = zero_zero_nat))))))). % mult_cancel1
thf(fact_60_mult__0__right, axiom,
    ((![M : nat]: ((times_times_nat @ M @ zero_zero_nat) = zero_zero_nat)))). % mult_0_right
thf(fact_61_mult__is__0, axiom,
    ((![M : nat, N : nat]: (((times_times_nat @ M @ N) = zero_zero_nat) = (((M = zero_zero_nat)) | ((N = zero_zero_nat))))))). % mult_is_0
thf(fact_62_power__mult, axiom,
    ((![A : a, M : nat, N : nat]: ((power_power_a @ A @ (times_times_nat @ M @ N)) = (power_power_a @ (power_power_a @ A @ M) @ N))))). % power_mult
thf(fact_63_power__mult, axiom,
    ((![A : nat, M : nat, N : nat]: ((power_power_nat @ A @ (times_times_nat @ M @ N)) = (power_power_nat @ (power_power_nat @ A @ M) @ N))))). % power_mult
thf(fact_64_power__divide, axiom,
    ((![A : a, B : a, N : nat]: ((power_power_a @ (divide_divide_a @ A @ B) @ N) = (divide_divide_a @ (power_power_a @ A @ N) @ (power_power_a @ B @ N)))))). % power_divide
thf(fact_65_zero__reorient, axiom,
    ((![X : a]: ((zero_zero_a = X) = (X = zero_zero_a))))). % zero_reorient
thf(fact_66_zero__reorient, axiom,
    ((![X : nat]: ((zero_zero_nat = X) = (X = zero_zero_nat))))). % zero_reorient
thf(fact_67_ab__semigroup__mult__class_Omult__ac_I1_J, axiom,
    ((![A : nat, B : nat, C : nat]: ((times_times_nat @ (times_times_nat @ A @ B) @ C) = (times_times_nat @ A @ (times_times_nat @ B @ C)))))). % ab_semigroup_mult_class.mult_ac(1)
thf(fact_68_ab__semigroup__mult__class_Omult__ac_I1_J, axiom,
    ((![A : a, B : a, C : a]: ((times_times_a @ (times_times_a @ A @ B) @ C) = (times_times_a @ A @ (times_times_a @ B @ C)))))). % ab_semigroup_mult_class.mult_ac(1)
thf(fact_69_mult_Oassoc, axiom,
    ((![A : nat, B : nat, C : nat]: ((times_times_nat @ (times_times_nat @ A @ B) @ C) = (times_times_nat @ A @ (times_times_nat @ B @ C)))))). % mult.assoc
thf(fact_70_mult_Oassoc, axiom,
    ((![A : a, B : a, C : a]: ((times_times_a @ (times_times_a @ A @ B) @ C) = (times_times_a @ A @ (times_times_a @ B @ C)))))). % mult.assoc
thf(fact_71_mult_Ocommute, axiom,
    ((times_times_nat = (^[A2 : nat]: (^[B2 : nat]: (times_times_nat @ B2 @ A2)))))). % mult.commute
thf(fact_72_mult_Ocommute, axiom,
    ((times_times_a = (^[A2 : a]: (^[B2 : a]: (times_times_a @ B2 @ A2)))))). % mult.commute
thf(fact_73_mult_Oleft__commute, axiom,
    ((![B : nat, A : nat, C : nat]: ((times_times_nat @ B @ (times_times_nat @ A @ C)) = (times_times_nat @ A @ (times_times_nat @ B @ C)))))). % mult.left_commute
thf(fact_74_mult_Oleft__commute, axiom,
    ((![B : a, A : a, C : a]: ((times_times_a @ B @ (times_times_a @ A @ C)) = (times_times_a @ A @ (times_times_a @ B @ C)))))). % mult.left_commute
thf(fact_75_mult__0, axiom,
    ((![N : nat]: ((times_times_nat @ zero_zero_nat @ N) = zero_zero_nat)))). % mult_0
thf(fact_76_nat__mult__eq__cancel__disj, axiom,
    ((![K : nat, M : nat, N : nat]: (((times_times_nat @ K @ M) = (times_times_nat @ K @ N)) = (((K = zero_zero_nat)) | ((M = N))))))). % nat_mult_eq_cancel_disj
thf(fact_77_power__not__zero, axiom,
    ((![A : a, N : nat]: ((~ ((A = zero_zero_a))) => (~ (((power_power_a @ A @ N) = zero_zero_a))))))). % power_not_zero
thf(fact_78_power__not__zero, axiom,
    ((![A : nat, N : nat]: ((~ ((A = zero_zero_nat))) => (~ (((power_power_nat @ A @ N) = zero_zero_nat))))))). % power_not_zero
thf(fact_79_power__commutes, axiom,
    ((![A : nat, N : nat]: ((times_times_nat @ (power_power_nat @ A @ N) @ A) = (times_times_nat @ A @ (power_power_nat @ A @ N)))))). % power_commutes
thf(fact_80_power__commutes, axiom,
    ((![A : a, N : nat]: ((times_times_a @ (power_power_a @ A @ N) @ A) = (times_times_a @ A @ (power_power_a @ A @ N)))))). % power_commutes
thf(fact_81_power__mult__distrib, axiom,
    ((![A : nat, B : nat, N : nat]: ((power_power_nat @ (times_times_nat @ A @ B) @ N) = (times_times_nat @ (power_power_nat @ A @ N) @ (power_power_nat @ B @ N)))))). % power_mult_distrib
thf(fact_82_power__mult__distrib, axiom,
    ((![A : a, B : a, N : nat]: ((power_power_a @ (times_times_a @ A @ B) @ N) = (times_times_a @ (power_power_a @ A @ N) @ (power_power_a @ B @ N)))))). % power_mult_distrib
thf(fact_83_power__commuting__commutes, axiom,
    ((![X : nat, Y : nat, N : nat]: (((times_times_nat @ X @ Y) = (times_times_nat @ Y @ X)) => ((times_times_nat @ (power_power_nat @ X @ N) @ Y) = (times_times_nat @ Y @ (power_power_nat @ X @ N))))))). % power_commuting_commutes
thf(fact_84_power__commuting__commutes, axiom,
    ((![X : a, Y : a, N : nat]: (((times_times_a @ X @ Y) = (times_times_a @ Y @ X)) => ((times_times_a @ (power_power_a @ X @ N) @ Y) = (times_times_a @ Y @ (power_power_a @ X @ N))))))). % power_commuting_commutes
thf(fact_85_div__mult__self1__is__m, axiom,
    ((![N : nat, M : nat]: ((ord_less_nat @ zero_zero_nat @ N) => ((divide_divide_nat @ (times_times_nat @ N @ M) @ N) = M))))). % div_mult_self1_is_m
thf(fact_86_div__mult__self__is__m, axiom,
    ((![N : nat, M : nat]: ((ord_less_nat @ zero_zero_nat @ N) => ((divide_divide_nat @ (times_times_nat @ M @ N) @ N) = M))))). % div_mult_self_is_m
thf(fact_87_nonzero__divide__mult__cancel__left, axiom,
    ((![A : a, B : a]: ((~ ((A = zero_zero_a))) => ((divide_divide_a @ A @ (times_times_a @ A @ B)) = (divide_divide_a @ one_one_a @ B)))))). % nonzero_divide_mult_cancel_left
thf(fact_88_nonzero__divide__mult__cancel__right, axiom,
    ((![B : a, A : a]: ((~ ((B = zero_zero_a))) => ((divide_divide_a @ B @ (times_times_a @ A @ B)) = (divide_divide_a @ one_one_a @ A)))))). % nonzero_divide_mult_cancel_right
thf(fact_89_power__eq__0__iff, axiom,
    ((![A : a, N : nat]: (((power_power_a @ A @ N) = zero_zero_a) = (((A = zero_zero_a)) & ((ord_less_nat @ zero_zero_nat @ N))))))). % power_eq_0_iff
thf(fact_90_power__eq__0__iff, axiom,
    ((![A : nat, N : nat]: (((power_power_nat @ A @ N) = zero_zero_nat) = (((A = zero_zero_nat)) & ((ord_less_nat @ zero_zero_nat @ N))))))). % power_eq_0_iff
thf(fact_91_div__mult__self1, axiom,
    ((![B : nat, A : nat, C : nat]: ((~ ((B = zero_zero_nat))) => ((divide_divide_nat @ (plus_plus_nat @ A @ (times_times_nat @ C @ B)) @ B) = (plus_plus_nat @ C @ (divide_divide_nat @ A @ B))))))). % div_mult_self1
thf(fact_92_add__right__cancel, axiom,
    ((![B : nat, A : nat, C : nat]: (((plus_plus_nat @ B @ A) = (plus_plus_nat @ C @ A)) = (B = C))))). % add_right_cancel
thf(fact_93_add__left__cancel, axiom,
    ((![A : nat, B : nat, C : nat]: (((plus_plus_nat @ A @ B) = (plus_plus_nat @ A @ C)) = (B = C))))). % add_left_cancel
thf(fact_94_power__one__right, axiom,
    ((![A : a]: ((power_power_a @ A @ one_one_nat) = A)))). % power_one_right
thf(fact_95_power__one__right, axiom,
    ((![A : nat]: ((power_power_nat @ A @ one_one_nat) = A)))). % power_one_right
thf(fact_96_Nat_Oadd__0__right, axiom,
    ((![M : nat]: ((plus_plus_nat @ M @ zero_zero_nat) = M)))). % Nat.add_0_right
thf(fact_97_add__is__0, axiom,
    ((![M : nat, N : nat]: (((plus_plus_nat @ M @ N) = zero_zero_nat) = (((M = zero_zero_nat)) & ((N = zero_zero_nat))))))). % add_is_0
thf(fact_98_nat__add__left__cancel__less, axiom,
    ((![K : nat, M : nat, N : nat]: ((ord_less_nat @ (plus_plus_nat @ K @ M) @ (plus_plus_nat @ K @ N)) = (ord_less_nat @ M @ N))))). % nat_add_left_cancel_less
thf(fact_99_nat__mult__eq__1__iff, axiom,
    ((![M : nat, N : nat]: (((times_times_nat @ M @ N) = one_one_nat) = (((M = one_one_nat)) & ((N = one_one_nat))))))). % nat_mult_eq_1_iff
thf(fact_100_nat__1__eq__mult__iff, axiom,
    ((![M : nat, N : nat]: ((one_one_nat = (times_times_nat @ M @ N)) = (((M = one_one_nat)) & ((N = one_one_nat))))))). % nat_1_eq_mult_iff
thf(fact_101_not__gr__zero, axiom,
    ((![N : nat]: ((~ ((ord_less_nat @ zero_zero_nat @ N))) = (N = zero_zero_nat))))). % not_gr_zero
thf(fact_102_zero__eq__add__iff__both__eq__0, axiom,
    ((![X : nat, Y : nat]: ((zero_zero_nat = (plus_plus_nat @ X @ Y)) = (((X = zero_zero_nat)) & ((Y = zero_zero_nat))))))). % zero_eq_add_iff_both_eq_0
thf(fact_103_add__eq__0__iff__both__eq__0, axiom,
    ((![X : nat, Y : nat]: (((plus_plus_nat @ X @ Y) = zero_zero_nat) = (((X = zero_zero_nat)) & ((Y = zero_zero_nat))))))). % add_eq_0_iff_both_eq_0
thf(fact_104_add__cancel__right__right, axiom,
    ((![A : a, B : a]: ((A = (plus_plus_a @ A @ B)) = (B = zero_zero_a))))). % add_cancel_right_right
thf(fact_105_add__cancel__right__right, axiom,
    ((![A : nat, B : nat]: ((A = (plus_plus_nat @ A @ B)) = (B = zero_zero_nat))))). % add_cancel_right_right
thf(fact_106_add__cancel__right__left, axiom,
    ((![A : a, B : a]: ((A = (plus_plus_a @ B @ A)) = (B = zero_zero_a))))). % add_cancel_right_left
thf(fact_107_add__cancel__right__left, axiom,
    ((![A : nat, B : nat]: ((A = (plus_plus_nat @ B @ A)) = (B = zero_zero_nat))))). % add_cancel_right_left
thf(fact_108_add__cancel__left__right, axiom,
    ((![A : a, B : a]: (((plus_plus_a @ A @ B) = A) = (B = zero_zero_a))))). % add_cancel_left_right
thf(fact_109_add__cancel__left__right, axiom,
    ((![A : nat, B : nat]: (((plus_plus_nat @ A @ B) = A) = (B = zero_zero_nat))))). % add_cancel_left_right
thf(fact_110_add__cancel__left__left, axiom,
    ((![B : a, A : a]: (((plus_plus_a @ B @ A) = A) = (B = zero_zero_a))))). % add_cancel_left_left
thf(fact_111_add__cancel__left__left, axiom,
    ((![B : nat, A : nat]: (((plus_plus_nat @ B @ A) = A) = (B = zero_zero_nat))))). % add_cancel_left_left
thf(fact_112_add_Oright__neutral, axiom,
    ((![A : a]: ((plus_plus_a @ A @ zero_zero_a) = A)))). % add.right_neutral
thf(fact_113_add_Oright__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ A @ zero_zero_nat) = A)))). % add.right_neutral
thf(fact_114_add_Oleft__neutral, axiom,
    ((![A : a]: ((plus_plus_a @ zero_zero_a @ A) = A)))). % add.left_neutral
thf(fact_115_add_Oleft__neutral, axiom,
    ((![A : nat]: ((plus_plus_nat @ zero_zero_nat @ A) = A)))). % add.left_neutral
thf(fact_116_add__less__cancel__right, axiom,
    ((![A : nat, C : nat, B : nat]: ((ord_less_nat @ (plus_plus_nat @ A @ C) @ (plus_plus_nat @ B @ C)) = (ord_less_nat @ A @ B))))). % add_less_cancel_right
thf(fact_117_add__less__cancel__left, axiom,
    ((![C : nat, A : nat, B : nat]: ((ord_less_nat @ (plus_plus_nat @ C @ A) @ (plus_plus_nat @ C @ B)) = (ord_less_nat @ A @ B))))). % add_less_cancel_left
thf(fact_118_mult_Oright__neutral, axiom,
    ((![A : nat]: ((times_times_nat @ A @ one_one_nat) = A)))). % mult.right_neutral
thf(fact_119_mult_Oright__neutral, axiom,
    ((![A : a]: ((times_times_a @ A @ one_one_a) = A)))). % mult.right_neutral
thf(fact_120_mult_Oleft__neutral, axiom,
    ((![A : nat]: ((times_times_nat @ one_one_nat @ A) = A)))). % mult.left_neutral
thf(fact_121_mult_Oleft__neutral, axiom,
    ((![A : a]: ((times_times_a @ one_one_a @ A) = A)))). % mult.left_neutral
thf(fact_122_div__by__1, axiom,
    ((![A : a]: ((divide_divide_a @ A @ one_one_a) = A)))). % div_by_1
thf(fact_123_div__by__1, axiom,
    ((![A : nat]: ((divide_divide_nat @ A @ one_one_nat) = A)))). % div_by_1
thf(fact_124_bits__div__by__1, axiom,
    ((![A : nat]: ((divide_divide_nat @ A @ one_one_nat) = A)))). % bits_div_by_1
thf(fact_125_power__one, axiom,
    ((![N : nat]: ((power_power_a @ one_one_a @ N) = one_one_a)))). % power_one
thf(fact_126_power__one, axiom,
    ((![N : nat]: ((power_power_nat @ one_one_nat @ N) = one_one_nat)))). % power_one
thf(fact_127_add__gr__0, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ zero_zero_nat @ (plus_plus_nat @ M @ N)) = (((ord_less_nat @ zero_zero_nat @ M)) | ((ord_less_nat @ zero_zero_nat @ N))))))). % add_gr_0
thf(fact_128_less__one, axiom,
    ((![N : nat]: ((ord_less_nat @ N @ one_one_nat) = (N = zero_zero_nat))))). % less_one
thf(fact_129_nat__zero__less__power__iff, axiom,
    ((![X : nat, N : nat]: ((ord_less_nat @ zero_zero_nat @ (power_power_nat @ X @ N)) = (((ord_less_nat @ zero_zero_nat @ X)) | ((N = zero_zero_nat))))))). % nat_zero_less_power_iff
thf(fact_130_bot__nat__0_Onot__eq__extremum, axiom,
    ((![A : nat]: ((~ ((A = zero_zero_nat))) = (ord_less_nat @ zero_zero_nat @ A))))). % bot_nat_0.not_eq_extremum
thf(fact_131_less__nat__zero__code, axiom,
    ((![N : nat]: (~ ((ord_less_nat @ N @ zero_zero_nat)))))). % less_nat_zero_code
thf(fact_132_neq0__conv, axiom,
    ((![N : nat]: ((~ ((N = zero_zero_nat))) = (ord_less_nat @ zero_zero_nat @ N))))). % neq0_conv
thf(fact_133_add__less__same__cancel1, axiom,
    ((![B : nat, A : nat]: ((ord_less_nat @ (plus_plus_nat @ B @ A) @ B) = (ord_less_nat @ A @ zero_zero_nat))))). % add_less_same_cancel1
thf(fact_134_add__less__same__cancel2, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ (plus_plus_nat @ A @ B) @ B) = (ord_less_nat @ A @ zero_zero_nat))))). % add_less_same_cancel2
thf(fact_135_less__add__same__cancel1, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ A @ (plus_plus_nat @ A @ B)) = (ord_less_nat @ zero_zero_nat @ B))))). % less_add_same_cancel1
thf(fact_136_less__add__same__cancel2, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ A @ (plus_plus_nat @ B @ A)) = (ord_less_nat @ zero_zero_nat @ B))))). % less_add_same_cancel2
thf(fact_137_mult__cancel__right2, axiom,
    ((![A : a, C : a]: (((times_times_a @ A @ C) = C) = (((C = zero_zero_a)) | ((A = one_one_a))))))). % mult_cancel_right2
thf(fact_138_mult__cancel__right1, axiom,
    ((![C : a, B : a]: ((C = (times_times_a @ B @ C)) = (((C = zero_zero_a)) | ((B = one_one_a))))))). % mult_cancel_right1
thf(fact_139_mult__cancel__left2, axiom,
    ((![C : a, A : a]: (((times_times_a @ C @ A) = C) = (((C = zero_zero_a)) | ((A = one_one_a))))))). % mult_cancel_left2
thf(fact_140_mult__cancel__left1, axiom,
    ((![C : a, B : a]: ((C = (times_times_a @ C @ B)) = (((C = zero_zero_a)) | ((B = one_one_a))))))). % mult_cancel_left1
thf(fact_141_divide__self__if, axiom,
    ((![A : a]: (((A = zero_zero_a) => ((divide_divide_a @ A @ A) = zero_zero_a)) & ((~ ((A = zero_zero_a))) => ((divide_divide_a @ A @ A) = one_one_a)))))). % divide_self_if
thf(fact_142_divide__self, axiom,
    ((![A : a]: ((~ ((A = zero_zero_a))) => ((divide_divide_a @ A @ A) = one_one_a))))). % divide_self
thf(fact_143_one__eq__divide__iff, axiom,
    ((![A : a, B : a]: ((one_one_a = (divide_divide_a @ A @ B)) = (((~ ((B = zero_zero_a)))) & ((A = B))))))). % one_eq_divide_iff
thf(fact_144_div__self, axiom,
    ((![A : a]: ((~ ((A = zero_zero_a))) => ((divide_divide_a @ A @ A) = one_one_a))))). % div_self
thf(fact_145_div__self, axiom,
    ((![A : nat]: ((~ ((A = zero_zero_nat))) => ((divide_divide_nat @ A @ A) = one_one_nat))))). % div_self
thf(fact_146_divide__eq__1__iff, axiom,
    ((![A : a, B : a]: (((divide_divide_a @ A @ B) = one_one_a) = (((~ ((B = zero_zero_a)))) & ((A = B))))))). % divide_eq_1_iff
thf(fact_147_power__inject__exp, axiom,
    ((![A : nat, M : nat, N : nat]: ((ord_less_nat @ one_one_nat @ A) => (((power_power_nat @ A @ M) = (power_power_nat @ A @ N)) = (M = N)))))). % power_inject_exp
thf(fact_148_mult__less__cancel2, axiom,
    ((![M : nat, K : nat, N : nat]: ((ord_less_nat @ (times_times_nat @ M @ K) @ (times_times_nat @ N @ K)) = (((ord_less_nat @ zero_zero_nat @ K)) & ((ord_less_nat @ M @ N))))))). % mult_less_cancel2
thf(fact_149_nat__0__less__mult__iff, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ zero_zero_nat @ (times_times_nat @ M @ N)) = (((ord_less_nat @ zero_zero_nat @ M)) & ((ord_less_nat @ zero_zero_nat @ N))))))). % nat_0_less_mult_iff
thf(fact_150_nat__mult__less__cancel__disj, axiom,
    ((![K : nat, M : nat, N : nat]: ((ord_less_nat @ (times_times_nat @ K @ M) @ (times_times_nat @ K @ N)) = (((ord_less_nat @ zero_zero_nat @ K)) & ((ord_less_nat @ M @ N))))))). % nat_mult_less_cancel_disj
thf(fact_151_div__less, axiom,
    ((![M : nat, N : nat]: ((ord_less_nat @ M @ N) => ((divide_divide_nat @ M @ N) = zero_zero_nat))))). % div_less
thf(fact_152_div__mult__self4, axiom,
    ((![B : nat, C : nat, A : nat]: ((~ ((B = zero_zero_nat))) => ((divide_divide_nat @ (plus_plus_nat @ (times_times_nat @ B @ C) @ A) @ B) = (plus_plus_nat @ C @ (divide_divide_nat @ A @ B))))))). % div_mult_self4
thf(fact_153_div__mult__self3, axiom,
    ((![B : nat, C : nat, A : nat]: ((~ ((B = zero_zero_nat))) => ((divide_divide_nat @ (plus_plus_nat @ (times_times_nat @ C @ B) @ A) @ B) = (plus_plus_nat @ C @ (divide_divide_nat @ A @ B))))))). % div_mult_self3
thf(fact_154_div__mult__self2, axiom,
    ((![B : nat, A : nat, C : nat]: ((~ ((B = zero_zero_nat))) => ((divide_divide_nat @ (plus_plus_nat @ A @ (times_times_nat @ B @ C)) @ B) = (plus_plus_nat @ C @ (divide_divide_nat @ A @ B))))))). % div_mult_self2
thf(fact_155_power__strict__increasing__iff, axiom,
    ((![B : nat, X : nat, Y : nat]: ((ord_less_nat @ one_one_nat @ B) => ((ord_less_nat @ (power_power_nat @ B @ X) @ (power_power_nat @ B @ Y)) = (ord_less_nat @ X @ Y)))))). % power_strict_increasing_iff
thf(fact_156_power__strict__decreasing__iff, axiom,
    ((![B : nat, M : nat, N : nat]: ((ord_less_nat @ zero_zero_nat @ B) => ((ord_less_nat @ B @ one_one_nat) => ((ord_less_nat @ (power_power_nat @ B @ M) @ (power_power_nat @ B @ N)) = (ord_less_nat @ N @ M))))))). % power_strict_decreasing_iff
thf(fact_157_less__imp__add__positive, axiom,
    ((![I : nat, J : nat]: ((ord_less_nat @ I @ J) => (?[K2 : nat]: ((ord_less_nat @ zero_zero_nat @ K2) & ((plus_plus_nat @ I @ K2) = J))))))). % less_imp_add_positive
thf(fact_158_zero__less__one, axiom,
    ((ord_less_nat @ zero_zero_nat @ one_one_nat))). % zero_less_one
thf(fact_159_one__less__power, axiom,
    ((![A : nat, N : nat]: ((ord_less_nat @ one_one_nat @ A) => ((ord_less_nat @ zero_zero_nat @ N) => (ord_less_nat @ one_one_nat @ (power_power_nat @ A @ N))))))). % one_less_power
thf(fact_160_add__neg__neg, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ A @ zero_zero_nat) => ((ord_less_nat @ B @ zero_zero_nat) => (ord_less_nat @ (plus_plus_nat @ A @ B) @ zero_zero_nat)))))). % add_neg_neg
thf(fact_161_add__pos__pos, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ zero_zero_nat @ A) => ((ord_less_nat @ zero_zero_nat @ B) => (ord_less_nat @ zero_zero_nat @ (plus_plus_nat @ A @ B))))))). % add_pos_pos
thf(fact_162_canonically__ordered__monoid__add__class_OlessE, axiom,
    ((![A : nat, B : nat]: ((ord_less_nat @ A @ B) => (~ ((![C2 : nat]: ((B = (plus_plus_nat @ A @ C2)) => (C2 = zero_zero_nat))))))))). % canonically_ordered_monoid_add_class.lessE
thf(fact_163_zero__less__two, axiom,
    ((ord_less_nat @ zero_zero_nat @ (plus_plus_nat @ one_one_nat @ one_one_nat)))). % zero_less_two
thf(fact_164_not__one__less__zero, axiom,
    ((~ ((ord_less_nat @ one_one_nat @ zero_zero_nat))))). % not_one_less_zero
thf(fact_165_pos__add__strict, axiom,
    ((![A : nat, B : nat, C : nat]: ((ord_less_nat @ zero_zero_nat @ A) => ((ord_less_nat @ B @ C) => (ord_less_nat @ B @ (plus_plus_nat @ A @ C))))))). % pos_add_strict

% Conjectures (2)
thf(conj_0, hypothesis,
    ((~ ((a2 = zero_zero_a))))).
thf(conj_1, conjecture,
    (((divide_divide_a @ (power_power_a @ a2 @ (times_times_nat @ i @ j)) @ (power_power_a @ a2 @ (times_times_nat @ k @ i))) = (power_power_a @ (divide_divide_a @ (power_power_a @ a2 @ j) @ (power_power_a @ a2 @ k)) @ i)))).
