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
∀ u. ∀ v. ∀ b. ∀ c. ∀ z. ∀ d. ∀ m. ∀ i. ∀ j. (∀ x. Lt(x,m) → ∃ y. ∃ n. BetaAt(b,c,x + x,y) ∧ (BetaAt(b,c,S (x + x),n) ∧ BetaAt(u,v,y,n))) → BetaAt(z,d,m + m,i) ∧ (BetaAt(z,d,S (m + m),j) ∧ (∀ x. ∀ y. Lt(x,m + m) → BetaAt(b,c,x,y) → BetaAt(z,d,x,y))) → BetaAt(u,v,i,j) → ∀ x. Lt(x,S m) → ∃ y. ∃ n. BetaAt(z,d,x + x,y) ∧ (BetaAt(z,d,S (x + x),n) ∧ BetaAt(u,v,y,n))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
14 occurrences
In local proof propositions
10 occurrences
Exact expanded native-PA statement
forall u v b c z d m i j. (forall wpop_pair_wpop_old_pairs. (exists wpo_gap_wpop_old_pairs_pair_bound. wpo_gap_wpop_old_pairs_pair_bound + S (wpop_pair_wpop_old_pairs) = m) -> exists wpop_left_wpop_old_pairs wpop_right_wpop_old_pairs. ((((exists wpo_beta_height_wpop_old_pairs_left_entry. wpo_beta_height_wpop_old_pairs_left_entry + S (wpop_left_wpop_old_pairs) = S ((S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs)) * c)) /\ exists wpo_beta_quotient_wpop_old_pairs_left_entry. b = wpo_beta_quotient_wpop_old_pairs_left_entry * S ((S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs)) * c) + (wpop_left_wpop_old_pairs))) /\ ((((exists wpo_beta_height_wpop_old_pairs_right_entry. wpo_beta_height_wpop_old_pairs_right_entry + S (wpop_right_wpop_old_pairs) = S ((S (S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs))) * c)) /\ exists wpo_beta_quotient_wpop_old_pairs_right_entry. b = wpo_beta_quotient_wpop_old_pairs_right_entry * S ((S (S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs))) * c) + (wpop_right_wpop_old_pairs))) /\ (((exists wpo_beta_height_wpop_old_pairs_inverse_entry. wpo_beta_height_wpop_old_pairs_inverse_entry + S (wpop_right_wpop_old_pairs) = S ((S (wpop_left_wpop_old_pairs)) * v)) /\ exists wpo_beta_quotient_wpop_old_pairs_inverse_entry. u = wpo_beta_quotient_wpop_old_pairs_inverse_entry * S ((S (wpop_left_wpop_old_pairs)) * v) + (wpop_right_wpop_old_pairs)))))) -> (((((exists wpo_beta_height_wpop_append_trace_first. wpo_beta_height_wpop_append_trace_first + S (i) = S ((S (m + m)) * d)) /\ exists wpo_beta_quotient_wpop_append_trace_first. z = wpo_beta_quotient_wpop_append_trace_first * S ((S (m + m)) * d) + (i))) /\ ((((exists wpo_beta_height_wpop_append_trace_second. wpo_beta_height_wpop_append_trace_second + S (j) = S ((S (S (m + m))) * d)) /\ exists wpo_beta_quotient_wpop_append_trace_second. z = wpo_beta_quotient_wpop_append_trace_second * S ((S (S (m + m))) * d) + (j))) /\ (forall wpo_old_index_wpop_append_trace wpo_old_value_wpop_append_trace. (exists wpo_gap_wpop_append_trace_old_bound. wpo_gap_wpop_append_trace_old_bound + S (wpo_old_index_wpop_append_trace) = m + m) -> (((exists wpo_beta_height_wpop_append_trace_old_entry. wpo_beta_height_wpop_append_trace_old_entry + S (wpo_old_value_wpop_append_trace) = S ((S (wpo_old_index_wpop_append_trace)) * c)) /\ exists wpo_beta_quotient_wpop_append_trace_old_entry. b = wpo_beta_quotient_wpop_append_trace_old_entry * S ((S (wpo_old_index_wpop_append_trace)) * c) + (wpo_old_value_wpop_append_trace))) -> (((exists wpo_beta_height_wpop_append_trace_new_entry. wpo_beta_height_wpop_append_trace_new_entry + S (wpo_old_value_wpop_append_trace) = S ((S (wpo_old_index_wpop_append_trace)) * d)) /\ exists wpo_beta_quotient_wpop_append_trace_new_entry. z = wpo_beta_quotient_wpop_append_trace_new_entry * S ((S (wpo_old_index_wpop_append_trace)) * d) + (wpo_old_value_wpop_append_trace))))))) -> (((exists wpo_beta_height_wpop_inverse_edge. wpo_beta_height_wpop_inverse_edge + S (j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_wpop_inverse_edge. u = wpo_beta_quotient_wpop_inverse_edge * S ((S (i)) * v) + (j))) -> (forall wpop_pair_wpop_new_pairs. (exists wpo_gap_wpop_new_pairs_pair_bound. wpo_gap_wpop_new_pairs_pair_bound + S (wpop_pair_wpop_new_pairs) = S m) -> exists wpop_left_wpop_new_pairs wpop_right_wpop_new_pairs. ((((exists wpo_beta_height_wpop_new_pairs_left_entry. wpo_beta_height_wpop_new_pairs_left_entry + S (wpop_left_wpop_new_pairs) = S ((S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs)) * d)) /\ exists wpo_beta_quotient_wpop_new_pairs_left_entry. z = wpo_beta_quotient_wpop_new_pairs_left_entry * S ((S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs)) * d) + (wpop_left_wpop_new_pairs))) /\ ((((exists wpo_beta_height_wpop_new_pairs_right_entry. wpo_beta_height_wpop_new_pairs_right_entry + S (wpop_right_wpop_new_pairs) = S ((S (S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs))) * d)) /\ exists wpo_beta_quotient_wpop_new_pairs_right_entry. z = wpo_beta_quotient_wpop_new_pairs_right_entry * S ((S (S (wpop_pair_wpop_new_pairs + wpop_pair_wpop_new_pairs))) * d) + (wpop_right_wpop_new_pairs))) /\ (((exists wpo_beta_height_wpop_new_pairs_inverse_entry. wpo_beta_height_wpop_new_pairs_inverse_entry + S (wpop_right_wpop_new_pairs) = S ((S (wpop_left_wpop_new_pairs)) * v)) /\ exists wpo_beta_quotient_wpop_new_pairs_inverse_entry. u = wpo_beta_quotient_wpop_new_pairs_inverse_entry * S ((S (wpop_left_wpop_new_pairs)) * v) + (wpop_right_wpop_new_pairs))))))Proof neighborhood
Direct theorem prerequisites
PA003D finite_lt_succ_eq_or_lt PA009Q pair_index_left_below_double PA009R pair_index_right_below_doubleDirect 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–12
03Separate the logical casesL13–14
04Fix variables and assumptionsL15–16
05Establish hsplitL17–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
06Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
cases hsplit
07Establish hleft_positionL23–26
08Establish hright_positionL27–29
09Construct an explicit witnessL30–31
10Separate the logical casesL32–32
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L32
split
11Calculate and transport equalitiesL33–34
12Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact htrace_left
13Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
split
14Calculate and transport equalitiesL37–38
15Use earlier factsL39–40
16Establish holdL41–43
Establish this local claim before using it. It is not an additional assumption.
- L41
have hold : ∀ wpop_pair_wpop_old_pairs. Lt(wpop_pair_wpop_old_pairs,m) → ∃ x. ∃ y. BetaAt(b,c,wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs,x) ∧ (BetaAt(b,c,S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs),y) ∧ BetaAt(u,v,x,y))Definitions: Lt(wpop_pair_wpop_old_pairs,m)BetaAt(b,c,wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs,x)BetaAt(b,c,S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs),y)BetaAt(u,v,x,y)Original native command in the exact edition - L42
exact hold_pairs - L43
specialize hold t
17Establish hold_atL44–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hold.
- L44
have hold_at : ∃ oi. ∃ oj. BetaAt(b,c,t + t,oi) ∧ (BetaAt(b,c,S (t + t),oj) ∧ BetaAt(u,v,oi,oj))Definitions: BetaAt(b,c,t + t,oi)BetaAt(b,c,S (t + t),oj)BetaAt(u,v,oi,oj)Original native command in the exact edition - L45
apply hold - L46
exact hsplit_right
18Separate the logical casesL47–50
19Establish hleft_boundL51–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair index left below double.
- L51
have hleft_bound : Lt(t + t,m + m)Definitions: Lt(t + t,m + m)Original native command in the exact edition - L52
specialize pair_index_left_below_double t - L53
specialize pair_index_left_below_double m - L54
apply pair_index_left_below_double - L55
exact hsplit_right
20Establish hright_boundL56–60
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair index right below double.
- L56
have hright_bound : Lt(S (t + t),m + m)Definitions: Lt(S (t + t),m + m)Original native command in the exact edition - L57
specialize pair_index_right_below_double t - L58
specialize pair_index_right_below_double m - L59
apply pair_index_right_below_double - L60
exact hsplit_right
21Construct an explicit witnessL61–62
22Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
23Use earlier factsL64–68
24Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
split
25Use earlier factsL70–75
Original defined command ledger · 75 lines
- 0001
intro u - 0002
intro v - 0003
intro b - 0004
intro c - 0005
intro z - 0006
intro d - 0007
intro m - 0008
intro i - 0009
intro j - 0010
intro hold_pairs - 0011
intro htrace - 0012
intro hedge - 0013
cases htrace - 0014
cases htrace_right - 0015
intro t - 0016
intro ht - 0017
have hsplit : t = m ∨ Lt(t,m)Exact native replay line
have hsplit : t = m \/ exists h. h + S t = m - 0018
specialize finite_lt_succ_eq_or_lt m - 0019
specialize finite_lt_succ_eq_or_lt t - 0020
apply finite_lt_succ_eq_or_lt - 0021
exact ht - 0022
cases hsplit - 0023
have hleft_position : t + t = m + m - 0024
rewrite hsplit_left - 0025
rewrite hsplit_left - 0026
refl - 0027
have hright_position : S (t + t) = S (m + m) - 0028
congr - 0029
exact hleft_position - 0030
exists i - 0031
exists j - 0032
split - 0033
rewrite hleft_position - 0034
rewrite hleft_position - 0035
exact htrace_left - 0036
split - 0037
rewrite hright_position - 0038
rewrite hright_position - 0039
exact htrace_right_left - 0040
exact hedge - 0041
have hold : ∀ wpop_pair_wpop_old_pairs. Lt(wpop_pair_wpop_old_pairs,m) → ∃ x. ∃ y. BetaAt(b,c,wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs,x) ∧ (BetaAt(b,c,S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs),y) ∧ BetaAt(u,v,x,y))Exact native replay line
have hold : forall wpop_pair_wpop_old_pairs. (exists wpo_gap_wpop_old_pairs_pair_bound. wpo_gap_wpop_old_pairs_pair_bound + S (wpop_pair_wpop_old_pairs) = m) -> exists wpop_left_wpop_old_pairs wpop_right_wpop_old_pairs. ((((exists wpo_beta_height_wpop_old_pairs_left_entry. wpo_beta_height_wpop_old_pairs_left_entry + S (wpop_left_wpop_old_pairs) = S ((S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs)) * c)) /\ exists wpo_beta_quotient_wpop_old_pairs_left_entry. b = wpo_beta_quotient_wpop_old_pairs_left_entry * S ((S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs)) * c) + (wpop_left_wpop_old_pairs))) /\ ((((exists wpo_beta_height_wpop_old_pairs_right_entry. wpo_beta_height_wpop_old_pairs_right_entry + S (wpop_right_wpop_old_pairs) = S ((S (S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs))) * c)) /\ exists wpo_beta_quotient_wpop_old_pairs_right_entry. b = wpo_beta_quotient_wpop_old_pairs_right_entry * S ((S (S (wpop_pair_wpop_old_pairs + wpop_pair_wpop_old_pairs))) * c) + (wpop_right_wpop_old_pairs))) /\ (((exists wpo_beta_height_wpop_old_pairs_inverse_entry. wpo_beta_height_wpop_old_pairs_inverse_entry + S (wpop_right_wpop_old_pairs) = S ((S (wpop_left_wpop_old_pairs)) * v)) /\ exists wpo_beta_quotient_wpop_old_pairs_inverse_entry. u = wpo_beta_quotient_wpop_old_pairs_inverse_entry * S ((S (wpop_left_wpop_old_pairs)) * v) + (wpop_right_wpop_old_pairs))))) - 0042
exact hold_pairs - 0043
specialize hold t - 0044
have hold_at : ∃ oi. ∃ oj. BetaAt(b,c,t + t,oi) ∧ (BetaAt(b,c,S (t + t),oj) ∧ BetaAt(u,v,oi,oj))Exact native replay line
have hold_at : exists oi oj. ((((exists wpo_beta_height_wpop_old_left_at_t. wpo_beta_height_wpop_old_left_at_t + S (oi) = S ((S (t + t)) * c)) /\ exists wpo_beta_quotient_wpop_old_left_at_t. b = wpo_beta_quotient_wpop_old_left_at_t * S ((S (t + t)) * c) + (oi))) /\ ((((exists wpo_beta_height_wpop_old_right_at_t. wpo_beta_height_wpop_old_right_at_t + S (oj) = S ((S (S (t + t))) * c)) /\ exists wpo_beta_quotient_wpop_old_right_at_t. b = wpo_beta_quotient_wpop_old_right_at_t * S ((S (S (t + t))) * c) + (oj))) /\ (((exists wpo_beta_height_wpop_old_edge_at_t. wpo_beta_height_wpop_old_edge_at_t + S (oj) = S ((S (oi)) * v)) /\ exists wpo_beta_quotient_wpop_old_edge_at_t. u = wpo_beta_quotient_wpop_old_edge_at_t * S ((S (oi)) * v) + (oj))))) - 0045
apply hold - 0046
exact hsplit_right - 0047
cases hold_at - 0048
cases hold_at_witness - 0049
cases hold_at_witness_witness - 0050
cases hold_at_witness_witness_right - 0051
have hleft_bound : Lt(t + t,m + m)Exact native replay line
have hleft_bound : exists h. h + S (t + t) = m + m - 0052
specialize pair_index_left_below_double t - 0053
specialize pair_index_left_below_double m - 0054
apply pair_index_left_below_double - 0055
exact hsplit_right - 0056
have hright_bound : Lt(S (t + t),m + m)Exact native replay line
have hright_bound : exists h. h + S (S (t + t)) = m + m - 0057
specialize pair_index_right_below_double t - 0058
specialize pair_index_right_below_double m - 0059
apply pair_index_right_below_double - 0060
exact hsplit_right - 0061
exists x - 0062
exists x1 - 0063
split - 0064
specialize htrace_right_right (t + t) - 0065
specialize htrace_right_right x - 0066
apply htrace_right_right - 0067
exact hleft_bound - 0068
exact hold_at_witness_witness_left - 0069
split - 0070
specialize htrace_right_right (S (t + t)) - 0071
specialize htrace_right_right x1 - 0072
apply htrace_right_right - 0073
exact hright_bound - 0074
exact hold_at_witness_witness_right_left - 0075
exact hold_at_witness_witness_right_right