Exact expanded PA statement
forall N c b e k P z. (exists h. h + S k = N) -> ~(P = 0) -> (forall i. (exists h. h + S i = k) -> exists q. P = S ((S i) * c) * q) -> (forall i a. (exists h. h + S i = k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v) -> (forall j. (exists g. g + k = j) -> (exists h. h + j = N) -> forall d. (exists u. P = d * u) -> (exists v. S ((S j) * c) = d * v) -> d = 1) -> exists z2. forall i a. (exists h. h + S i = S k) -> ((exists h. h + S a = S ((S i) * e)) /\ exists q. b = q * S ((S i) * e) + a) -> exists u v. z2 + S ((S i) * c) * u = a + S ((S i) * c) * vStructural proof guide
Add the next source value to a target-base CRT code for an exclusive prefix.
Direct prerequisites: beta_modulus_nonzero, le_refl, lt_to_le, binary_crt_fold_step, beta_at_exists, beta_at_unique, le_of_succ_le_succ, le_eq_or_lt. The authored body proceeds by case analysis (4), intermediate claims (11), equality transport (5).
Proof neighborhood
Direct dependencies
BT003Y beta_modulus_nonzero BT000E le_refl BT0019 lt_to_le BT004U binary_crt_fold_step BT0041 beta_at_exists BT0042 beta_at_unique BT0017 le_of_succ_le_succ BT001C le_eq_or_ltDirect 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 N - 0002
intro c - 0003
intro b - 0004
intro e - 0005
intro k - 0006
intro P - 0007
intro z - 0008
intro hkN - 0009
intro hP - 0010
intro hdiv - 0011
intro hcong - 0012
intro hfuture - 0013
have hnew : ~(S ((S k) * c) = 0) - 0014
specialize beta_modulus_nonzero c - 0015
specialize beta_modulus_nonzero k - 0016
exact beta_modulus_nonzero - 0017
have hkbound : exists h. h + k = N - 0018
specialize lt_to_le k - 0019
specialize lt_to_le N - 0020
apply lt_to_le - 0021
exact hkN - 0022
have hcop : forall d. (exists u. P = d * u) -> (exists v. S ((S k) * c) = d * v) -> d = 1 - 0023
specialize hfuture k - 0024
apply hfuture - 0025
specialize le_refl k - 0026
exact le_refl - 0027
exact hkbound - 0028
have hvalue : exists a. ((exists h. h + S a = S ((S k) * e)) /\ exists q. b = q * S ((S k) * e) + a) - 0029
specialize beta_at_exists b - 0030
specialize beta_at_exists e - 0031
specialize beta_at_exists k - 0032
exact beta_at_exists - 0033
cases hvalue - 0034
have hfold : exists z2. ((forall m a. (exists q. P = m * q) -> (exists u v. z + m * u = a + m * v) -> exists r s. z2 + m * r = a + m * s) /\ exists q r. z2 + S ((S k) * c) * q = x + S ((S k) * c) * r) - 0035
specialize binary_crt_fold_step P - 0036
specialize binary_crt_fold_step (S ((S k) * c)) - 0037
specialize binary_crt_fold_step z - 0038
specialize binary_crt_fold_step x - 0039
apply binary_crt_fold_step - 0040
exact hP - 0041
exact hnew - 0042
exact hcop - 0043
cases hfold - 0044
cases hfold_witness - 0045
exists x1 - 0046
intro i - 0047
intro a - 0048
intro hi - 0049
intro hati - 0050
have hik : exists r. r + i = k - 0051
specialize le_of_succ_le_succ i - 0052
specialize le_of_succ_le_succ k - 0053
apply le_of_succ_le_succ - 0054
exact hi - 0055
have hsplit : i = k \/ exists r. r + S i = k - 0056
specialize le_eq_or_lt i - 0057
specialize le_eq_or_lt k - 0058
apply le_eq_or_lt - 0059
exact hik - 0060
cases hsplit - 0061
have hati_new : ((exists h. h + S a = S ((S k) * e)) /\ exists q. b = q * S ((S k) * e) + a) - 0062
rewrite <- hsplit_left - 0063
rewrite <- hsplit_left - 0064
exact hati - 0065
have haeq : a = x - 0066
specialize beta_at_unique b - 0067
specialize beta_at_unique e - 0068
specialize beta_at_unique k - 0069
specialize beta_at_unique a - 0070
specialize beta_at_unique x - 0071
apply beta_at_unique - 0072
exact hati_new - 0073
exact hvalue_witness - 0074
rewrite hsplit_left - 0075
rewrite hsplit_left - 0076
rewrite haeq - 0077
exact hfold_witness_right - 0078
have hmiP : exists q. P = S ((S i) * c) * q - 0079
specialize hdiv i - 0080
apply hdiv - 0081
exact hsplit_right - 0082
have hzold : exists u v. z + S ((S i) * c) * u = a + S ((S i) * c) * v - 0083
specialize hcong i - 0084
specialize hcong a - 0085
apply hcong - 0086
exact hsplit_right - 0087
exact hati - 0088
specialize hfold_witness_left (S ((S i) * c)) - 0089
specialize hfold_witness_left a - 0090
apply hfold_witness_left - 0091
exact hmiP - 0092
exact hzold