Exact expanded PA statement
forall b c l n i p. (exists h. h + S i = l) -> ((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) -> (exists u v. (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ (((exists h. h + S n = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + n) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * v)) /\ exists q. u = q * S ((S i) * v) + r) /\ (((exists h. h + S s = S ((S S i) * v)) /\ exists q. u = q * S ((S S i) * v) + s) /\ s = r * p)))))) -> exists q. n = p * qStructural proof guide
Every decoded factor inside an exact beta Product divides its terminal product.
Direct prerequisites: add_eq_zero_right, succ_ne_zero, beta_product_succ_decompose, le_of_succ_le_succ, le_eq_or_lt, beta_at_unique, mul_comm, multiple_mul_right. The authored body proceeds by structural induction (1), case analysis (7), intermediate claims (7), equality transport (3).
Proof neighborhood
Direct dependencies
BT000L add_eq_zero_right BT000C succ_ne_zero BT005J beta_product_succ_decompose BT0017 le_of_succ_le_succ BT001C le_eq_or_lt BT0042 beta_at_unique BT0006 mul_comm BT002A multiple_mul_rightDirect dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro b - 0002
intro c - 0003
induction l - 0004
intro n - 0005
intro i - 0006
intro p - 0007
intro hi - 0008
intro hp - 0009
intro hproduct - 0010
exfalso - 0011
cases hi - 0012
have hsi0 : S i = 0 - 0013
specialize add_eq_zero_right x - 0014
specialize add_eq_zero_right (S i) - 0015
apply add_eq_zero_right - 0016
exact hi_witness - 0017
specialize succ_ne_zero i - 0018
apply succ_ne_zero - 0019
exact hsi0 - 0020
intro n - 0021
intro i - 0022
intro p - 0023
intro hi - 0024
intro hp - 0025
intro hproduct - 0026
have hdecomp : exists a r. (((exists h. h + S a = S ((S l) * c)) /\ exists q. b = q * S ((S l) * c) + a) /\ ((exists u v. (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ (((exists h. h + S r = S ((S l) * v)) /\ exists q. u = q * S ((S l) * v) + r) /\ forall i. (exists h. h + S i = l) -> exists p r s. (((exists h. h + S p = S ((S i) * c)) /\ exists q. b = q * S ((S i) * c) + p) /\ (((exists h. h + S r = S ((S i) * v)) /\ exists q. u = q * S ((S i) * v) + r) /\ (((exists h. h + S s = S ((S S i) * v)) /\ exists q. u = q * S ((S S i) * v) + s) /\ s = r * p)))))) /\ n = r * a)) - 0027
specialize beta_product_succ_decompose b - 0028
specialize beta_product_succ_decompose c - 0029
specialize beta_product_succ_decompose l - 0030
specialize beta_product_succ_decompose n - 0031
apply beta_product_succ_decompose - 0032
exact hproduct - 0033
cases hdecomp - 0034
cases hdecomp_witness - 0035
cases hdecomp_witness_witness - 0036
cases hdecomp_witness_witness_right - 0037
have hil : exists h. h + i = l - 0038
specialize le_of_succ_le_succ i - 0039
specialize le_of_succ_le_succ l - 0040
apply le_of_succ_le_succ - 0041
exact hi - 0042
have hsplit : i = l \/ exists h. h + S i = l - 0043
specialize le_eq_or_lt i - 0044
specialize le_eq_or_lt l - 0045
apply le_eq_or_lt - 0046
exact hil - 0047
cases hsplit - 0048
have hpa : p = x - 0049
specialize beta_at_unique b - 0050
specialize beta_at_unique c - 0051
specialize beta_at_unique l - 0052
specialize beta_at_unique p - 0053
specialize beta_at_unique x - 0054
apply beta_at_unique - 0055
rewrite hsplit_left at hp - 0056
rewrite hsplit_left at hp - 0057
exact hp - 0058
exact hdecomp_witness_witness_left - 0059
exists x1 - 0060
trans x1 * x - 0061
exact hdecomp_witness_witness_right_right - 0062
rewrite hpa - 0063
apply mul_comm - 0064
have hidiv : exists q. x1 = p * q - 0065
specialize IH x1 - 0066
specialize IH i - 0067
specialize IH p - 0068
apply IH - 0069
exact hsplit_right - 0070
exact hp - 0071
exact hdecomp_witness_witness_right_left - 0072
have hmul : exists q. x1 * x = p * q - 0073
specialize multiple_mul_right p - 0074
specialize multiple_mul_right x1 - 0075
specialize multiple_mul_right x - 0076
apply multiple_mul_right - 0077
exact hidiv - 0078
cases hmul - 0079
exists x2 - 0080
trans x1 * x - 0081
exact hdecomp_witness_witness_right_right - 0082
exact hmul_witness