Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Statement with defined notation
∀ p. ∀ n. ∀ u. ∀ v. ∀ b. ∀ c. ∀ m. InversePrefix(p,n,u,v,n) → (∀ x. Lt(x,m + m) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,n)) → (∀ x. Lt(x,m) → ∃ y. ∃ z. BetaAt(b,c,x + x,y) ∧ (BetaAt(b,c,S (x + x),z) ∧ BetaAt(u,v,y,z))) → ∃ x. ∃ y. ∃ z. (∀ k. ∀ i. Lt(k,m + m) → BetaAt(b,c,k,i) → BetaAt(x,y,k,S i)) ∧ ((∀ k. ∀ i. ∀ j. Lt(k,m) → BetaAt(x,y,k + k,i) → BetaAt(x,y,S (k + k),j) → BalancedInverse(p,i,j)) ∧ (Product(x,y,m + m,z) ∧ ModEq(p,z,1)))Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
17 occurrences
In local proof propositions
7 occurrences
Exact expanded native-PA statement
forall p n u v b c m. (forall wip_index_wsl_inverse. (exists wip_gap_wsl_inverse_prefix_bound. wip_gap_wsl_inverse_prefix_bound + S wip_index_wsl_inverse = n) -> exists wip_mate_wsl_inverse. ((((exists wip_beta_height_wsl_inverse_decoded. wip_beta_height_wsl_inverse_decoded + S (wip_mate_wsl_inverse) = S ((S (wip_index_wsl_inverse)) * v)) /\ exists wip_beta_quotient_wsl_inverse_decoded. u = wip_beta_quotient_wsl_inverse_decoded * S ((S (wip_index_wsl_inverse)) * v) + (wip_mate_wsl_inverse))) /\ ((exists wip_gap_wsl_inverse_inverse_index_bound. wip_gap_wsl_inverse_inverse_index_bound + S wip_index_wsl_inverse = n) /\ ((exists wip_gap_wsl_inverse_inverse_mate_bound. wip_gap_wsl_inverse_inverse_mate_bound + S wip_mate_wsl_inverse = n) /\ (exists wip_mod_left_wsl_inverse_inverse_mod wip_mod_right_wsl_inverse_inverse_mod. ((S wip_index_wsl_inverse) * S wip_mate_wsl_inverse) + p * wip_mod_left_wsl_inverse_inverse_mod = 1 + p * wip_mod_right_wsl_inverse_inverse_mod))))) -> (forall fom_index_wsl_bounded. (exists fom_gap_wsl_bounded_index_bound. fom_gap_wsl_bounded_index_bound + S (fom_index_wsl_bounded) = m + m) -> exists fom_value_wsl_bounded. ((((exists fom_beta_height_wsl_bounded_entry. fom_beta_height_wsl_bounded_entry + S (fom_value_wsl_bounded) = S ((S (fom_index_wsl_bounded)) * c)) /\ exists fom_beta_quotient_wsl_bounded_entry. b = fom_beta_quotient_wsl_bounded_entry * S ((S (fom_index_wsl_bounded)) * c) + (fom_value_wsl_bounded))) /\ (exists fom_gap_wsl_bounded_value_bound. fom_gap_wsl_bounded_value_bound + S (fom_value_wsl_bounded) = n))) -> (forall wpop_pair_wsl_pairs. (exists wpo_gap_wsl_pairs_pair_bound. wpo_gap_wsl_pairs_pair_bound + S (wpop_pair_wsl_pairs) = m) -> exists wpop_left_wsl_pairs wpop_right_wsl_pairs. ((((exists wpo_beta_height_wsl_pairs_left_entry. wpo_beta_height_wsl_pairs_left_entry + S (wpop_left_wsl_pairs) = S ((S (wpop_pair_wsl_pairs + wpop_pair_wsl_pairs)) * c)) /\ exists wpo_beta_quotient_wsl_pairs_left_entry. b = wpo_beta_quotient_wsl_pairs_left_entry * S ((S (wpop_pair_wsl_pairs + wpop_pair_wsl_pairs)) * c) + (wpop_left_wsl_pairs))) /\ ((((exists wpo_beta_height_wsl_pairs_right_entry. wpo_beta_height_wsl_pairs_right_entry + S (wpop_right_wsl_pairs) = S ((S (S (wpop_pair_wsl_pairs + wpop_pair_wsl_pairs))) * c)) /\ exists wpo_beta_quotient_wsl_pairs_right_entry. b = wpo_beta_quotient_wsl_pairs_right_entry * S ((S (S (wpop_pair_wsl_pairs + wpop_pair_wsl_pairs))) * c) + (wpop_right_wsl_pairs))) /\ (((exists wpo_beta_height_wsl_pairs_inverse_entry. wpo_beta_height_wsl_pairs_inverse_entry + S (wpop_right_wsl_pairs) = S ((S (wpop_left_wsl_pairs)) * v)) /\ exists wpo_beta_quotient_wsl_pairs_inverse_entry. u = wpo_beta_quotient_wsl_pairs_inverse_entry * S ((S (wpop_left_wsl_pairs)) * v) + (wpop_right_wsl_pairs)))))) -> (exists f g Q. ((forall wsl_index_wsl_lift wsl_value_wsl_lift. (exists wpo_gap_wsl_lift_bound. wpo_gap_wsl_lift_bound + S (wsl_index_wsl_lift) = m + m) -> (((exists wpo_beta_height_wsl_lift_source. wpo_beta_height_wsl_lift_source + S (wsl_value_wsl_lift) = S ((S (wsl_index_wsl_lift)) * c)) /\ exists wpo_beta_quotient_wsl_lift_source. b = wpo_beta_quotient_wsl_lift_source * S ((S (wsl_index_wsl_lift)) * c) + (wsl_value_wsl_lift))) -> (((exists wpo_beta_height_wsl_lift_target. wpo_beta_height_wsl_lift_target + S (S wsl_value_wsl_lift) = S ((S (wsl_index_wsl_lift)) * g)) /\ exists wpo_beta_quotient_wsl_lift_target. f = wpo_beta_quotient_wsl_lift_target * S ((S (wsl_index_wsl_lift)) * g) + (S wsl_value_wsl_lift)))) /\ ((forall wpp_pair_wsl_adjacent wpp_left_wsl_adjacent wpp_right_wsl_adjacent. (exists wpp_gap_wsl_adjacent_pair_bound. wpp_gap_wsl_adjacent_pair_bound + S (wpp_pair_wsl_adjacent) = m) -> (((exists wpp_beta_height_wsl_adjacent_left_entry. wpp_beta_height_wsl_adjacent_left_entry + S (wpp_left_wsl_adjacent) = S ((S ((wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g)) /\ exists wpp_beta_quotient_wsl_adjacent_left_entry. f = wpp_beta_quotient_wsl_adjacent_left_entry * S ((S ((wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g) + (wpp_left_wsl_adjacent))) -> (((exists wpp_beta_height_wsl_adjacent_right_entry. wpp_beta_height_wsl_adjacent_right_entry + S (wpp_right_wsl_adjacent) = S ((S (S (wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g)) /\ exists wpp_beta_quotient_wsl_adjacent_right_entry. f = wpp_beta_quotient_wsl_adjacent_right_entry * S ((S (S (wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g) + (wpp_right_wsl_adjacent))) -> (exists wpp_mod_left_wsl_adjacent_pair_mod wpp_mod_right_wsl_adjacent_pair_mod. (wpp_left_wsl_adjacent * wpp_right_wsl_adjacent) + p * wpp_mod_left_wsl_adjacent_pair_mod = (1) + p * wpp_mod_right_wsl_adjacent_pair_mod)) /\ ((exists wpp_trace_code_wsl_product wpp_trace_scale_wsl_product. ((((exists wpp_beta_height_wsl_product_start. wpp_beta_height_wsl_product_start + S (1) = S ((S (0)) * wpp_trace_scale_wsl_product)) /\ exists wpp_beta_quotient_wsl_product_start. wpp_trace_code_wsl_product = wpp_beta_quotient_wsl_product_start * S ((S (0)) * wpp_trace_scale_wsl_product) + (1))) /\ ((((exists wpp_beta_height_wsl_product_terminal. wpp_beta_height_wsl_product_terminal + S (Q) = S ((S (m + m)) * wpp_trace_scale_wsl_product)) /\ exists wpp_beta_quotient_wsl_product_terminal. wpp_trace_code_wsl_product = wpp_beta_quotient_wsl_product_terminal * S ((S (m + m)) * wpp_trace_scale_wsl_product) + (Q))) /\ forall wpp_index_wsl_product. (exists wpp_gap_wsl_product_bound. wpp_gap_wsl_product_bound + S (wpp_index_wsl_product) = m + m) -> exists wpp_factor_wsl_product wpp_prefix_wsl_product wpp_successor_wsl_product. ((((exists wpp_beta_height_wsl_product_factor. wpp_beta_height_wsl_product_factor + S (wpp_factor_wsl_product) = S ((S (wpp_index_wsl_product)) * g)) /\ exists wpp_beta_quotient_wsl_product_factor. f = wpp_beta_quotient_wsl_product_factor * S ((S (wpp_index_wsl_product)) * g) + (wpp_factor_wsl_product))) /\ ((((exists wpp_beta_height_wsl_product_prefix. wpp_beta_height_wsl_product_prefix + S (wpp_prefix_wsl_product) = S ((S (wpp_index_wsl_product)) * wpp_trace_scale_wsl_product)) /\ exists wpp_beta_quotient_wsl_product_prefix. wpp_trace_code_wsl_product = wpp_beta_quotient_wsl_product_prefix * S ((S (wpp_index_wsl_product)) * wpp_trace_scale_wsl_product) + (wpp_prefix_wsl_product))) /\ ((((exists wpp_beta_height_wsl_product_successor. wpp_beta_height_wsl_product_successor + S (wpp_successor_wsl_product) = S ((S (S (wpp_index_wsl_product))) * wpp_trace_scale_wsl_product)) /\ exists wpp_beta_quotient_wsl_product_successor. wpp_trace_code_wsl_product = wpp_beta_quotient_wsl_product_successor * S ((S (S (wpp_index_wsl_product))) * wpp_trace_scale_wsl_product) + (wpp_successor_wsl_product))) /\ wpp_successor_wsl_product = wpp_prefix_wsl_product * wpp_factor_wsl_product)))))) /\ (exists wpp_mod_left_wsl_product_mod_one wpp_mod_right_wsl_product_mod_one. (Q) + p * wpp_mod_left_wsl_product_mod_one = (1) + p * wpp_mod_right_wsl_product_mod_one)))))Proof neighborhood
Direct theorem prerequisites
PA00B8 paired_pair_order_factor_code_exists PA003X beta_product_exists PA00B9 beta_adjacent_unit_pairs_product_oneDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (3)
01Fix variables and assumptionsL1–10
02Establish hfactorsL11–20
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply paired pair order factor code exists.
- L11
have hfactors : ∃ f. ∃ g. (∀ x. ∀ y. Lt(x,m + m) → BetaAt(b,c,x,y) → BetaAt(f,g,x,S y)) ∧ (∀ x. ∀ y. ∀ z. Lt(x,m) → BetaAt(f,g,x + x,y) → BetaAt(f,g,S (x + x),z) → BalancedInverse(p,y,z))Definitions: Lt(x,m + m)BetaAt(b,c,x,y)BetaAt(f,g,x,S y)Lt(x,m)BetaAt(f,g,x + x,y)BetaAt(f,g,S (x + x),z)BalancedInverse(p,y,z)Original native command in the exact edition - L12
specialize paired_pair_order_factor_code_exists p - L13
specialize paired_pair_order_factor_code_exists n - L14
specialize paired_pair_order_factor_code_exists u - L15
specialize paired_pair_order_factor_code_exists v - L16
specialize paired_pair_order_factor_code_exists b - L17
specialize paired_pair_order_factor_code_exists c - L18
specialize paired_pair_order_factor_code_exists m - L19
apply paired_pair_order_factor_code_exists - L20
exact hinverse
03Use earlier factsL21–22
04Separate the logical casesL23–25
05Use earlier factsL26–28
06Separate the logical casesL29–31
07Construct an explicit witnessL32–34
08Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
split
09Use earlier factsL36–36
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
exact hfactors_witness_witness_left
10Separate the logical casesL37–37
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L37
split
11Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hfactors_witness_witness_right
12Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
13Construct an explicit witnessL40–41
14Use earlier factsL42–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
exact beta_product_exists_witness_witness_witness - L43
specialize beta_adjacent_unit_pairs_product_one p - L44
specialize beta_adjacent_unit_pairs_product_one x - L45
specialize beta_adjacent_unit_pairs_product_one x1 - L46
specialize beta_adjacent_unit_pairs_product_one m - L47
specialize beta_adjacent_unit_pairs_product_one x2 - L48
apply beta_adjacent_unit_pairs_product_one - L49
exact hfactors_witness_witness_right
15Construct an explicit witnessL50–51
16Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
exact beta_product_exists_witness_witness_witness
Original defined command ledger · 52 lines
- 0001
intro p - 0002
intro n - 0003
intro u - 0004
intro v - 0005
intro b - 0006
intro c - 0007
intro m - 0008
intro hinverse - 0009
intro hbounded - 0010
intro hpairs - 0011
have hfactors : ∃ f. ∃ g. (∀ x. ∀ y. Lt(x,m + m) → BetaAt(b,c,x,y) → BetaAt(f,g,x,S y)) ∧ (∀ x. ∀ y. ∀ z. Lt(x,m) → BetaAt(f,g,x + x,y) → BetaAt(f,g,S (x + x),z) → BalancedInverse(p,y,z))Exact native replay line
have hfactors : exists f g. ((forall wsl_index_wsl_lift wsl_value_wsl_lift. (exists wpo_gap_wsl_lift_bound. wpo_gap_wsl_lift_bound + S (wsl_index_wsl_lift) = m + m) -> (((exists wpo_beta_height_wsl_lift_source. wpo_beta_height_wsl_lift_source + S (wsl_value_wsl_lift) = S ((S (wsl_index_wsl_lift)) * c)) /\ exists wpo_beta_quotient_wsl_lift_source. b = wpo_beta_quotient_wsl_lift_source * S ((S (wsl_index_wsl_lift)) * c) + (wsl_value_wsl_lift))) -> (((exists wpo_beta_height_wsl_lift_target. wpo_beta_height_wsl_lift_target + S (S wsl_value_wsl_lift) = S ((S (wsl_index_wsl_lift)) * g)) /\ exists wpo_beta_quotient_wsl_lift_target. f = wpo_beta_quotient_wsl_lift_target * S ((S (wsl_index_wsl_lift)) * g) + (S wsl_value_wsl_lift)))) /\ (forall wpp_pair_wsl_adjacent wpp_left_wsl_adjacent wpp_right_wsl_adjacent. (exists wpp_gap_wsl_adjacent_pair_bound. wpp_gap_wsl_adjacent_pair_bound + S (wpp_pair_wsl_adjacent) = m) -> (((exists wpp_beta_height_wsl_adjacent_left_entry. wpp_beta_height_wsl_adjacent_left_entry + S (wpp_left_wsl_adjacent) = S ((S ((wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g)) /\ exists wpp_beta_quotient_wsl_adjacent_left_entry. f = wpp_beta_quotient_wsl_adjacent_left_entry * S ((S ((wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g) + (wpp_left_wsl_adjacent))) -> (((exists wpp_beta_height_wsl_adjacent_right_entry. wpp_beta_height_wsl_adjacent_right_entry + S (wpp_right_wsl_adjacent) = S ((S (S (wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g)) /\ exists wpp_beta_quotient_wsl_adjacent_right_entry. f = wpp_beta_quotient_wsl_adjacent_right_entry * S ((S (S (wpp_pair_wsl_adjacent + wpp_pair_wsl_adjacent))) * g) + (wpp_right_wsl_adjacent))) -> (exists wpp_mod_left_wsl_adjacent_pair_mod wpp_mod_right_wsl_adjacent_pair_mod. (wpp_left_wsl_adjacent * wpp_right_wsl_adjacent) + p * wpp_mod_left_wsl_adjacent_pair_mod = (1) + p * wpp_mod_right_wsl_adjacent_pair_mod))) - 0012
specialize paired_pair_order_factor_code_exists p - 0013
specialize paired_pair_order_factor_code_exists n - 0014
specialize paired_pair_order_factor_code_exists u - 0015
specialize paired_pair_order_factor_code_exists v - 0016
specialize paired_pair_order_factor_code_exists b - 0017
specialize paired_pair_order_factor_code_exists c - 0018
specialize paired_pair_order_factor_code_exists m - 0019
apply paired_pair_order_factor_code_exists - 0020
exact hinverse - 0021
exact hbounded - 0022
exact hpairs - 0023
cases hfactors - 0024
cases hfactors_witness - 0025
cases hfactors_witness_witness - 0026
specialize beta_product_exists x - 0027
specialize beta_product_exists x1 - 0028
specialize beta_product_exists (m + m) - 0029
cases beta_product_exists - 0030
cases beta_product_exists_witness - 0031
cases beta_product_exists_witness_witness - 0032
exists x - 0033
exists x1 - 0034
exists x2 - 0035
split - 0036
exact hfactors_witness_witness_left - 0037
split - 0038
exact hfactors_witness_witness_right - 0039
split - 0040
exists x3 - 0041
exists x4 - 0042
exact beta_product_exists_witness_witness_witness - 0043
specialize beta_adjacent_unit_pairs_product_one p - 0044
specialize beta_adjacent_unit_pairs_product_one x - 0045
specialize beta_adjacent_unit_pairs_product_one x1 - 0046
specialize beta_adjacent_unit_pairs_product_one m - 0047
specialize beta_adjacent_unit_pairs_product_one x2 - 0048
apply beta_adjacent_unit_pairs_product_one - 0049
exact hfactors_witness_witness_right - 0050
exists x3 - 0051
exists x4 - 0052
exact beta_product_exists_witness_witness_witness