Exact expanded PA statement
~(3 = 1) /\ forall a b. 3 = a * b -> a = 1 \/ b = 1Structural proof guide
Three is prime in the expanded first-order prime predicate.
Direct prerequisites: mul_succ_left, mul_eq_one_components, add_eq_zero_left, mul_eq_zero, mul_zero_left, zero_or_succ. The authored body proceeds by structural induction (4), case analysis (4), intermediate claims (11), equality transport (11).
Proof neighborhood
Direct dependencies
BT0005 mul_succ_left BT0020 mul_eq_one_components BT001X add_eq_zero_left BT000M mul_eq_zero BT0004 mul_zero_left BT000Q zero_or_succDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
have hlarge : forall x y. ~(3 = S (S x) * S (S y)) - 0002
intro x - 0003
intro y - 0004
intro hlarge_eq - 0005
specialize mul_succ_left (S x) - 0006
specialize mul_succ_left (S (S y)) - 0007
rewrite mul_succ_left at hlarge_eq - 0008
rewrite PA4 at hlarge_eq - 0009
rewrite PA4 at hlarge_eq - 0010
have hone : 1 = S x * S (S y) + y - 0011
apply PA2 - 0012
apply PA2 - 0013
exact hlarge_eq - 0014
have hysplit : y = 0 \/ exists z. y = S z - 0015
specialize zero_or_succ y - 0016
exact zero_or_succ - 0017
cases hysplit - 0018
rewrite hysplit_left at hone - 0019
rewrite hysplit_left at hone - 0020
rewrite PA3 at hone - 0021
have hprod_one : S x * S (S 0) = 1 - 0022
symm - 0023
exact hone - 0024
have hcomponents : S x = 1 /\ S (S 0) = 1 - 0025
specialize mul_eq_one_components (S x) - 0026
specialize mul_eq_one_components (S (S 0)) - 0027
apply mul_eq_one_components - 0028
exact hprod_one - 0029
cases hcomponents - 0030
have h10 : 1 = 0 - 0031
apply PA2 - 0032
exact hcomponents_right - 0033
apply PA1 - 0034
exact h10 - 0035
cases hysplit_right - 0036
rewrite hysplit_right_witness at hone - 0037
rewrite hysplit_right_witness at hone - 0038
rewrite PA4 at hone - 0039
have hzero : 0 = S x * S (S (S x1)) + x1 - 0040
apply PA2 - 0041
exact hone - 0042
have hsumzero : S x * S (S (S x1)) + x1 = 0 - 0043
symm - 0044
exact hzero - 0045
have hprodzero : S x * S (S (S x1)) = 0 - 0046
specialize add_eq_zero_left (S x * S (S (S x1))) - 0047
specialize add_eq_zero_left x1 - 0048
apply add_eq_zero_left - 0049
exact hsumzero - 0050
have hfactors : S x = 0 \/ S (S (S x1)) = 0 - 0051
specialize mul_eq_zero (S x) - 0052
specialize mul_eq_zero (S (S (S x1))) - 0053
apply mul_eq_zero - 0054
exact hprodzero - 0055
cases hfactors - 0056
apply PA1 - 0057
exact hfactors_left - 0058
apply PA1 - 0059
exact hfactors_right - 0060
split - 0061
intro h31 - 0062
have h20 : 2 = 0 - 0063
apply PA2 - 0064
exact h31 - 0065
apply PA1 - 0066
exact h20 - 0067
intro a - 0068
induction b - 0069
intro hab - 0070
rewrite PA5 at hab - 0071
exfalso - 0072
apply PA1 - 0073
exact hab - 0074
induction b - 0075
intro hab - 0076
right - 0077
refl - 0078
induction a - 0079
intro hab - 0080
specialize mul_zero_left (S (S b)) - 0081
rewrite mul_zero_left at hab - 0082
exfalso - 0083
apply PA1 - 0084
exact hab - 0085
induction a - 0086
intro hab - 0087
left - 0088
refl - 0089
intro hab - 0090
exfalso - 0091
specialize hlarge a - 0092
specialize hlarge b - 0093
apply hlarge - 0094
exact hab