Exact expanded PA statement
forall b c l. exists n 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)))))Structural proof guide
Generated structural guide
Every finite decoded beta prefix has an exact relational product and a coded trace.
Use the direct prerequisites beta_prefix_product_trace_exists, beta_at_exists as previously established PA formulas.
The proof proceeds by case analysis (4), intermediate claims (2).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
PA0046 pow_exists PA0060 factorial_exists PA007J beta_sign_factor_product_power_exists PA007O beta_pointwise_mul_product_exists PA007X beta_product_permutation_invariant PA0085 gauss_lemma_power_congruence_exists PA008J prime_mul_residue_product_balance PA00BA paired_pair_order_product_one_exists PA00BE prime_wilson_terminal_product_package_exists PA00BK scaled_pair_order_terminal_power_mod_predecessorFormal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Stable checked-use theorem is independently kernel-checked when replayed.
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
have htrace : exists u v. (((exists h. h + S 1 = S ((S 0) * v)) /\ exists q. u = q * S ((S 0) * v) + 1) /\ 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)))) - 0005
specialize beta_prefix_product_trace_exists b - 0006
specialize beta_prefix_product_trace_exists c - 0007
specialize beta_prefix_product_trace_exists l - 0008
exact beta_prefix_product_trace_exists - 0009
cases htrace - 0010
cases htrace_witness - 0011
cases htrace_witness_witness - 0012
have hterminal : exists n. ((exists h. h + S n = S ((S l) * x1)) /\ exists q. x = q * S ((S l) * x1) + n) - 0013
specialize beta_at_exists x - 0014
specialize beta_at_exists x1 - 0015
specialize beta_at_exists l - 0016
exact beta_at_exists - 0017
cases hterminal - 0018
exists x2 - 0019
exists x - 0020
exists x1 - 0021
split - 0022
exact htrace_witness_witness_left - 0023
split - 0024
exact hterminal_witness - 0025
exact htrace_witness_witness_right