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. ∀ a. ∀ r. ∀ s. ∀ b. ∀ c. ∀ z. ∀ d. (∀ x. Lt(x,n) → ∃ y. Lt(y,n) ∧ (BetaAt(r,s,x,y) ∧ ModEq(p,a · S x,S y))) → Range(b,c,1,n) → (∀ x. ∀ y. Lt(x,n) → BetaAt(r,s,x,y) → BetaAt(z,d,x,S y)) → ∀ x. ∀ y. ∀ m. Lt(x,n) → BetaAt(b,c,x,y) → BetaAt(z,d,x,m) → ModEq(p,a · y,m)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
12 occurrences
In local proof propositions
4 occurrences
Exact expanded native-PA statement
forall p n a r s b c z d. (forall frm_index_scale_map. (exists frm_gap_scale_map_index_bound. frm_gap_scale_map_index_bound + S frm_index_scale_map = n) -> (exists frm_residue_scale_map_result. (exists frm_gap_scale_map_result_residue_bound. frm_gap_scale_map_result_residue_bound + S frm_residue_scale_map_result = n) /\ ((((exists ff_h_frm_scale_map_result_decoded. ff_h_frm_scale_map_result_decoded + S (frm_residue_scale_map_result) = S ((S (frm_index_scale_map)) * s)) /\ exists ff_q_frm_scale_map_result_decoded. r = ff_q_frm_scale_map_result_decoded * S ((S (frm_index_scale_map)) * s) + (frm_residue_scale_map_result))) /\ (exists frm_mod_left_scale_map_result_congruence frm_mod_right_scale_map_result_congruence. a * S frm_index_scale_map + p * frm_mod_left_scale_map_result_congruence = S frm_residue_scale_map_result + p * frm_mod_right_scale_map_result_congruence)))) -> (forall ff_i_frp_range_scale_range. (exists ff_lt_frp_range_scale_range_bound. ff_lt_frp_range_scale_range_bound + S ff_i_frp_range_scale_range = n) -> (((exists ff_h_frp_range_scale_range_decoded. ff_h_frp_range_scale_range_decoded + S (1 + ff_i_frp_range_scale_range) = S ((S (ff_i_frp_range_scale_range)) * c)) /\ exists ff_q_frp_range_scale_range_decoded. b = ff_q_frp_range_scale_range_decoded * S ((S (ff_i_frp_range_scale_range)) * c) + (1 + ff_i_frp_range_scale_range)))) -> (forall frr_index_scale_lift frr_value_scale_lift. (exists frr_gap_scale_lift. frr_gap_scale_lift + S frr_index_scale_lift = n) -> (((exists ff_h_frr_scale_lift_source. ff_h_frr_scale_lift_source + S (frr_value_scale_lift) = S ((S (frr_index_scale_lift)) * s)) /\ exists ff_q_frr_scale_lift_source. r = ff_q_frr_scale_lift_source * S ((S (frr_index_scale_lift)) * s) + (frr_value_scale_lift))) -> (((exists frm_height_frr_scale_lift_target. frm_height_frr_scale_lift_target + S (S frr_value_scale_lift) = S ((S (frr_index_scale_lift)) * d)) /\ exists frm_quotient_frr_scale_lift_target. z = frm_quotient_frr_scale_lift_target * S ((S (frr_index_scale_lift)) * d) + (S frr_value_scale_lift)))) -> (forall fsp_index_scale_result fsp_source_scale_result fsp_target_scale_result. (exists fsp_gap_scale_result. fsp_gap_scale_result + S fsp_index_scale_result = n) -> (((exists fsp_source_height_scale_result. fsp_source_height_scale_result + S (fsp_source_scale_result) = S ((S (fsp_index_scale_result)) * c)) /\ exists fsp_source_quotient_scale_result. b = fsp_source_quotient_scale_result * S ((S (fsp_index_scale_result)) * c) + (fsp_source_scale_result))) -> (((exists fsp_target_height_scale_result. fsp_target_height_scale_result + S (fsp_target_scale_result) = S ((S (fsp_index_scale_result)) * d)) /\ exists fsp_target_quotient_scale_result. z = fsp_target_quotient_scale_result * S ((S (fsp_index_scale_result)) * d) + (fsp_target_scale_result))) -> (exists fsp_mod_left_scale_result fsp_mod_right_scale_result. a * fsp_source_scale_result + p * fsp_mod_left_scale_result = fsp_target_scale_result + p * fsp_mod_right_scale_result))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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–18
03Establish hmiL19–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmap.
- L19
have hmi : ∃ frm_residue_scale_at_i. Lt(frm_residue_scale_at_i,n) ∧ (BetaAt(r,s,i,frm_residue_scale_at_i) ∧ ModEq(p,a · S i,S frm_residue_scale_at_i))Definitions: Lt(frm_residue_scale_at_i,n)BetaAt(r,s,i,frm_residue_scale_at_i)ModEq(p,a · S i,S frm_residue_scale_at_i)Original native command in the exact edition - L20
specialize hmap i - L21
apply hmap - L22
exact hi
04Separate the logical casesL23–25
05Establish hsource_valueL26–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta range one entry eq succ.
- L26
have hsource_value : source = S i - L27
specialize beta_range_one_entry_eq_succ b - L28
specialize beta_range_one_entry_eq_succ c - L29
specialize beta_range_one_entry_eq_succ n - L30
specialize beta_range_one_entry_eq_succ i - L31
specialize beta_range_one_entry_eq_succ source - L32
apply beta_range_one_entry_eq_succ - L33
exact hrange - L34
exact hi - L35
exact hsource
06Establish htarget_succL36–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hlift.
- L36
have htarget_succ : BetaAt(z,d,i,S x)Definitions: BetaAt(z,d,i,S x)Original native command in the exact edition - L37
specialize hlift i - L38
specialize hlift x - L39
apply hlift - L40
exact hi - L41
exact hmi_witness_right_left
07Establish htarget_valueL42–51
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Calculate and transport equalitiesL52–52
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L52
rewrite htarget_value
09Use earlier factsL53–53
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L53
exact hmi_witness_right_right
Original defined command ledger · 53 lines
- 0001
intro p - 0002
intro n - 0003
intro a - 0004
intro r - 0005
intro s - 0006
intro b - 0007
intro c - 0008
intro z - 0009
intro d - 0010
intro hmap - 0011
intro hrange - 0012
intro hlift - 0013
intro i - 0014
intro source - 0015
intro target - 0016
intro hi - 0017
intro hsource - 0018
intro htarget - 0019
have hmi : ∃ frm_residue_scale_at_i. Lt(frm_residue_scale_at_i,n) ∧ (BetaAt(r,s,i,frm_residue_scale_at_i) ∧ ModEq(p,a · S i,S frm_residue_scale_at_i))Exact native replay line
have hmi : exists frm_residue_scale_at_i. (exists frm_gap_scale_at_i_residue_bound. frm_gap_scale_at_i_residue_bound + S frm_residue_scale_at_i = n) /\ ((((exists ff_h_frm_scale_at_i_decoded. ff_h_frm_scale_at_i_decoded + S (frm_residue_scale_at_i) = S ((S (i)) * s)) /\ exists ff_q_frm_scale_at_i_decoded. r = ff_q_frm_scale_at_i_decoded * S ((S (i)) * s) + (frm_residue_scale_at_i))) /\ (exists frm_mod_left_scale_at_i_congruence frm_mod_right_scale_at_i_congruence. a * S i + p * frm_mod_left_scale_at_i_congruence = S frm_residue_scale_at_i + p * frm_mod_right_scale_at_i_congruence)) - 0020
specialize hmap i - 0021
apply hmap - 0022
exact hi - 0023
cases hmi - 0024
cases hmi_witness - 0025
cases hmi_witness_right - 0026
have hsource_value : source = S i - 0027
specialize beta_range_one_entry_eq_succ b - 0028
specialize beta_range_one_entry_eq_succ c - 0029
specialize beta_range_one_entry_eq_succ n - 0030
specialize beta_range_one_entry_eq_succ i - 0031
specialize beta_range_one_entry_eq_succ source - 0032
apply beta_range_one_entry_eq_succ - 0033
exact hrange - 0034
exact hi - 0035
exact hsource - 0036
have htarget_succ : BetaAt(z,d,i,S x)Exact native replay line
have htarget_succ : ((exists frm_height_scale_target. frm_height_scale_target + S (S x) = S ((S (i)) * d)) /\ exists frm_quotient_scale_target. z = frm_quotient_scale_target * S ((S (i)) * d) + (S x)) - 0037
specialize hlift i - 0038
specialize hlift x - 0039
apply hlift - 0040
exact hi - 0041
exact hmi_witness_right_left - 0042
have htarget_value : target = S x - 0043
specialize beta_at_unique z - 0044
specialize beta_at_unique d - 0045
specialize beta_at_unique i - 0046
specialize beta_at_unique target - 0047
specialize beta_at_unique (S x) - 0048
apply beta_at_unique - 0049
exact htarget - 0050
exact htarget_succ - 0051
rewrite hsource_value - 0052
rewrite htarget_value - 0053
exact hmi_witness_right_right