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. ∀ f. ∀ g. ∀ 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. 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)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
15 occurrences
In local proof propositions
12 occurrences
Exact expanded native-PA statement
forall p n u v b c f g 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)))))) -> (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))Proof neighborhood
Direct theorem prerequisites
Direct 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
02Fix variables and assumptionsL11–19
03Establish hpairL20–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpairs.
- L20
have hpair : ∃ i. ∃ j. BetaAt(b,c,t + t,i) ∧ (BetaAt(b,c,S (t + t),j) ∧ BetaAt(u,v,i,j))Definitions: BetaAt(b,c,t + t,i)BetaAt(b,c,S (t + t),j)BetaAt(u,v,i,j)Original native command in the exact edition - L21
specialize hpairs t - L22
apply hpairs - L23
exact ht
04Separate the logical casesL24–27
05Establish hevenL28–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair index left below double.
- L28
have heven : Lt(t + t,m + m)Definitions: Lt(t + t,m + m)Original native command in the exact edition - L29
specialize pair_index_left_below_double t - L30
specialize pair_index_left_below_double m - L31
apply pair_index_left_below_double - L32
exact ht
06Establish hoddL33–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair index right below double.
- L33
have hodd : Lt(S (t + t),m + m)Definitions: Lt(S (t + t),m + m)Original native command in the exact edition - L34
specialize pair_index_right_below_double t - L35
specialize pair_index_right_below_double m - L36
apply pair_index_right_below_double - L37
exact ht
07Establish hlift_leftL38–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hlift.
- L38
have hlift_left : BetaAt(f,g,t + t,S x)Definitions: BetaAt(f,g,t + t,S x)Original native command in the exact edition - L39
specialize hlift (t + t) - L40
specialize hlift x - L41
apply hlift - L42
exact heven - L43
exact hpair_witness_witness_left
08Establish hlift_rightL44–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hlift.
- L44
have hlift_right : BetaAt(f,g,S (t + t),S x1)Definitions: BetaAt(f,g,S (t + t),S x1)Original native command in the exact edition - L45
specialize hlift (S (t + t)) - L46
specialize hlift x1 - L47
apply hlift - L48
exact hodd - L49
exact hpair_witness_witness_right_left
09Establish haeqL50–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
10Establish hdeqL59–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
11Establish hbounded_dataL68–71
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbounded.
- L68
have hbounded_data : ∃ w. BetaAt(b,c,t + t,w) ∧ Lt(w,n)Definitions: BetaAt(b,c,t + t,w)Lt(w,n)Original native command in the exact edition - L69
specialize hbounded (t + t) - L70
apply hbounded - L71
exact heven
12Separate the logical casesL72–73
13Establish hieqL74–82
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
14Establish hiboundL83–85
Establish this local claim before using it. It is not an additional assumption.
15Establish hinverse_dataL86–89
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hinverse.
- L86
have hinverse_data : ∃ q. BetaAt(u,v,x,q) ∧ InverseIndex(p,n,x,q)Definitions: BetaAt(u,v,x,q)InverseIndex(p,n,x,q)Original native command in the exact edition - L87
specialize hinverse x - L88
apply hinverse - L89
exact hibound
16Separate the logical casesL90–93
17Establish hjeqL94–103
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
18Calculate and transport equalitiesL104–105
19Use earlier factsL106–106
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L106
exact hinverse_data_witness_right_right_right
Original defined command ledger · 106 lines
- 0001
intro p - 0002
intro n - 0003
intro u - 0004
intro v - 0005
intro b - 0006
intro c - 0007
intro f - 0008
intro g - 0009
intro m - 0010
intro hinverse - 0011
intro hbounded - 0012
intro hpairs - 0013
intro hlift - 0014
intro t - 0015
intro a - 0016
intro d - 0017
intro ht - 0018
intro ha - 0019
intro hd - 0020
have hpair : ∃ i. ∃ j. BetaAt(b,c,t + t,i) ∧ (BetaAt(b,c,S (t + t),j) ∧ BetaAt(u,v,i,j))Exact native replay line
have hpair : exists i j. ((((exists wpo_beta_height_wsl_order_even_i. wpo_beta_height_wsl_order_even_i + S (i) = S ((S (t + t)) * c)) /\ exists wpo_beta_quotient_wsl_order_even_i. b = wpo_beta_quotient_wsl_order_even_i * S ((S (t + t)) * c) + (i))) /\ ((((exists wpo_beta_height_wsl_order_odd_j. wpo_beta_height_wsl_order_odd_j + S (j) = S ((S (S (t + t))) * c)) /\ exists wpo_beta_quotient_wsl_order_odd_j. b = wpo_beta_quotient_wsl_order_odd_j * S ((S (S (t + t))) * c) + (j))) /\ (((exists wpo_beta_height_wsl_inverse_i_j. wpo_beta_height_wsl_inverse_i_j + S (j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_wsl_inverse_i_j. u = wpo_beta_quotient_wsl_inverse_i_j * S ((S (i)) * v) + (j))))) - 0021
specialize hpairs t - 0022
apply hpairs - 0023
exact ht - 0024
cases hpair - 0025
cases hpair_witness - 0026
cases hpair_witness_witness - 0027
cases hpair_witness_witness_right - 0028
have heven : Lt(t + t,m + m)Exact native replay line
have heven : exists wpo_gap_wsl_even_bound. wpo_gap_wsl_even_bound + S (t + t) = m + m - 0029
specialize pair_index_left_below_double t - 0030
specialize pair_index_left_below_double m - 0031
apply pair_index_left_below_double - 0032
exact ht - 0033
have hodd : Lt(S (t + t),m + m)Exact native replay line
have hodd : exists wpo_gap_wsl_odd_bound. wpo_gap_wsl_odd_bound + S (S (t + t)) = m + m - 0034
specialize pair_index_right_below_double t - 0035
specialize pair_index_right_below_double m - 0036
apply pair_index_right_below_double - 0037
exact ht - 0038
have hlift_left : BetaAt(f,g,t + t,S x)Exact native replay line
have hlift_left : ((exists wpo_beta_height_wsl_lifted_even_i. wpo_beta_height_wsl_lifted_even_i + S (S x) = S ((S (t + t)) * g)) /\ exists wpo_beta_quotient_wsl_lifted_even_i. f = wpo_beta_quotient_wsl_lifted_even_i * S ((S (t + t)) * g) + (S x)) - 0039
specialize hlift (t + t) - 0040
specialize hlift x - 0041
apply hlift - 0042
exact heven - 0043
exact hpair_witness_witness_left - 0044
have hlift_right : BetaAt(f,g,S (t + t),S x1)Exact native replay line
have hlift_right : ((exists wpo_beta_height_wsl_lifted_odd_j. wpo_beta_height_wsl_lifted_odd_j + S (S x1) = S ((S (S (t + t))) * g)) /\ exists wpo_beta_quotient_wsl_lifted_odd_j. f = wpo_beta_quotient_wsl_lifted_odd_j * S ((S (S (t + t))) * g) + (S x1)) - 0045
specialize hlift (S (t + t)) - 0046
specialize hlift x1 - 0047
apply hlift - 0048
exact hodd - 0049
exact hpair_witness_witness_right_left - 0050
have haeq : a = S x - 0051
specialize beta_at_unique f - 0052
specialize beta_at_unique g - 0053
specialize beta_at_unique (t + t) - 0054
specialize beta_at_unique a - 0055
specialize beta_at_unique (S x) - 0056
apply beta_at_unique - 0057
exact ha - 0058
exact hlift_left - 0059
have hdeq : d = S x1 - 0060
specialize beta_at_unique f - 0061
specialize beta_at_unique g - 0062
specialize beta_at_unique (S (t + t)) - 0063
specialize beta_at_unique d - 0064
specialize beta_at_unique (S x1) - 0065
apply beta_at_unique - 0066
exact hd - 0067
exact hlift_right - 0068
have hbounded_data : ∃ w. BetaAt(b,c,t + t,w) ∧ Lt(w,n)Exact native replay line
have hbounded_data : exists w. ((((exists wpo_beta_height_wsl_bounded_even_entry. wpo_beta_height_wsl_bounded_even_entry + S (w) = S ((S (t + t)) * c)) /\ exists wpo_beta_quotient_wsl_bounded_even_entry. b = wpo_beta_quotient_wsl_bounded_even_entry * S ((S (t + t)) * c) + (w))) /\ (exists wpo_gap_wsl_bounded_even_value. wpo_gap_wsl_bounded_even_value + S (w) = n)) - 0069
specialize hbounded (t + t) - 0070
apply hbounded - 0071
exact heven - 0072
cases hbounded_data - 0073
cases hbounded_data_witness - 0074
have hieq : x = x2 - 0075
specialize beta_at_unique b - 0076
specialize beta_at_unique c - 0077
specialize beta_at_unique (t + t) - 0078
specialize beta_at_unique x - 0079
specialize beta_at_unique x2 - 0080
apply beta_at_unique - 0081
exact hpair_witness_witness_left - 0082
exact hbounded_data_witness_left - 0083
have hibound : Lt(x,n)Exact native replay line
have hibound : exists h. h + S x = n - 0084
rewrite hieq - 0085
exact hbounded_data_witness_right - 0086
have hinverse_data : ∃ q. BetaAt(u,v,x,q) ∧ InverseIndex(p,n,x,q)Exact native replay line
have hinverse_data : exists q. ((((exists wpo_beta_height_wsl_inverse_at_i_entry. wpo_beta_height_wsl_inverse_at_i_entry + S (q) = S ((S (x)) * v)) /\ exists wpo_beta_quotient_wsl_inverse_at_i_entry. u = wpo_beta_quotient_wsl_inverse_at_i_entry * S ((S (x)) * v) + (q))) /\ ((exists wpo_gap_wsl_inverse_at_i_source_bound. wpo_gap_wsl_inverse_at_i_source_bound + S (x) = n) /\ ((exists wpo_gap_wsl_inverse_at_i_mate_bound. wpo_gap_wsl_inverse_at_i_mate_bound + S (q) = n) /\ exists y z. (S x * S q) + p * y = 1 + p * z))) - 0087
specialize hinverse x - 0088
apply hinverse - 0089
exact hibound - 0090
cases hinverse_data - 0091
cases hinverse_data_witness - 0092
cases hinverse_data_witness_right - 0093
cases hinverse_data_witness_right_right - 0094
have hjeq : x1 = x3 - 0095
specialize beta_at_unique u - 0096
specialize beta_at_unique v - 0097
specialize beta_at_unique x - 0098
specialize beta_at_unique x1 - 0099
specialize beta_at_unique x3 - 0100
apply beta_at_unique - 0101
exact hpair_witness_witness_right_right - 0102
exact hinverse_data_witness_left - 0103
rewrite haeq - 0104
rewrite hdeq - 0105
rewrite hjeq - 0106
exact hinverse_data_witness_right_right_right