Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved.
Operation tables contain actual beta-coded entries and compare represented signed values, not encodings. The strict sum window is i<l and the separately certified endpoint i=l is unused. Rectangular Fubini and full finite signed Möbius inversion are separate, now-admitted families.
Exact theorem in conservative defined notation
∀ l. ∀ a. ∀ F. ArithTable(l,F) → ∃ x. ArithScale(a,F,x,l)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 70 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.
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 (4)
01Induction on lL1–4
02Construct an explicit witnessL5–5
Supply the displayed value, then prove that it has the required property.
- L5
exists ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))
03Use earlier factsL6–15
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L6
specialize signed_table_scalar_empty (a) - L7
specialize signed_table_scalar_empty (F) - L8
specialize signed_table_scalar_empty (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) - L9
apply signed_table_scalar_empty - L10
exact ht0 - L11
specialize divisor_signed_table_from_components (0) - L12
specialize divisor_signed_table_from_components (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) - L13
specialize divisor_signed_table_from_components (0) - L14
specialize divisor_signed_table_from_components (0) - L15
specialize divisor_signed_table_from_components (0)
04Use earlier factsL16–17
05Calculate and transport equalitiesL18–18
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L18
refl
06Fix variables and assumptionsL19–21
07Establish hpL22–30
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L22
have hp : ∃ K. ArithScale(a,F,K,l)Definitions: ArithScale(a,F,K,l)Original native command in the exact edition - L23
specialize IH (a) - L24
specialize IH (F) - L25
apply IH - L26
specialize signed_table_domain_resize (S l) - L27
specialize signed_table_domain_resize (l) - L28
specialize signed_table_domain_resize (F) - L29
apply signed_table_domain_resize - L30
exact ht0
08Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hp
09Establish he0L32–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L32
have he0 : ∃ z. ArithAt(F,l,z)Definitions: ArithAt(F,l,z)Original native command in the exact edition - L33
specialize signed_table_lookup_any (S l) - L34
specialize signed_table_lookup_any (F) - L35
specialize signed_table_lookup_any (l) - L36
apply signed_table_lookup_any - L37
exact ht0
10Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases he0
11Establish hvL39–42
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul total.
- L39
have hv : ∃ z. SignedMul(a,x1,z)Definitions: SignedMul(a,x1,z)Original native command in the exact edition - L40
specialize signed_mul_total (a) - L41
specialize signed_mul_total (x1) - L42
apply signed_mul_total
12Separate the logical casesL43–43
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L43
cases hv
13Establish hnextL44–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table extend at.
- L44
have hnext : ∃ K. ArithExtend(x,K,l,x2)Definitions: ArithExtend(x,K,l,x2)Original native command in the exact edition - L45
specialize arithmetic_signed_table_extend_at (l) - L46
specialize arithmetic_signed_table_extend_at (x) - L47
specialize arithmetic_signed_table_extend_at (l) - L48
specialize arithmetic_signed_table_extend_at (x2) - L49
apply arithmetic_signed_table_extend_at
14Separate the logical casesL50–51
15Use earlier factsL52–52
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
exact hp_witness_right_left
16Separate the logical casesL53–55
17Construct an explicit witnessL56–56
Supply the displayed value, then prove that it has the required property.
- L56
exists x3
18Use earlier factsL57–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
specialize signed_table_scalar_extend (a) - L58
specialize signed_table_scalar_extend (F) - L59
specialize signed_table_scalar_extend (x) - L60
specialize signed_table_scalar_extend (x3) - L61
specialize signed_table_scalar_extend (l) - L62
specialize signed_table_scalar_extend (x1) - L63
specialize signed_table_scalar_extend (x2) - L64
apply signed_table_scalar_extend - L65
exact hp_witness - L66
exact hnext_witness_left
Original defined command ledger · 70 lines
- 0001
induction l - 0002
intro a - 0003
intro F - 0004
intro ht0 - 0005
exists ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) - 0006
specialize signed_table_scalar_empty (a) - 0007
specialize signed_table_scalar_empty (F) - 0008
specialize signed_table_scalar_empty (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) - 0009
apply signed_table_scalar_empty - 0010
exact ht0 - 0011
specialize divisor_signed_table_from_components (0) - 0012
specialize divisor_signed_table_from_components (((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) - 0013
specialize divisor_signed_table_from_components (0) - 0014
specialize divisor_signed_table_from_components (0) - 0015
specialize divisor_signed_table_from_components (0) - 0016
specialize divisor_signed_table_from_components (0) - 0017
apply divisor_signed_table_from_components - 0018
refl - 0019
intro a - 0020
intro F - 0021
intro ht0 - 0022
have hp : ∃ K. ArithScale(a,F,K,l) - 0023
specialize IH (a) - 0024
specialize IH (F) - 0025
apply IH - 0026
specialize signed_table_domain_resize (S l) - 0027
specialize signed_table_domain_resize (l) - 0028
specialize signed_table_domain_resize (F) - 0029
apply signed_table_domain_resize - 0030
exact ht0 - 0031
cases hp - 0032
have he0 : ∃ z. ArithAt(F,l,z) - 0033
specialize signed_table_lookup_any (S l) - 0034
specialize signed_table_lookup_any (F) - 0035
specialize signed_table_lookup_any (l) - 0036
apply signed_table_lookup_any - 0037
exact ht0 - 0038
cases he0 - 0039
have hv : ∃ z. SignedMul(a,x1,z) - 0040
specialize signed_mul_total (a) - 0041
specialize signed_mul_total (x1) - 0042
apply signed_mul_total - 0043
cases hv - 0044
have hnext : ∃ K. ArithExtend(x,K,l,x2) - 0045
specialize arithmetic_signed_table_extend_at (l) - 0046
specialize arithmetic_signed_table_extend_at (x) - 0047
specialize arithmetic_signed_table_extend_at (l) - 0048
specialize arithmetic_signed_table_extend_at (x2) - 0049
apply arithmetic_signed_table_extend_at - 0050
cases hp_witness - 0051
cases hp_witness_right - 0052
exact hp_witness_right_left - 0053
cases hnext - 0054
cases hnext_witness - 0055
cases hnext_witness_right - 0056
exists x3 - 0057
specialize signed_table_scalar_extend (a) - 0058
specialize signed_table_scalar_extend (F) - 0059
specialize signed_table_scalar_extend (x) - 0060
specialize signed_table_scalar_extend (x3) - 0061
specialize signed_table_scalar_extend (l) - 0062
specialize signed_table_scalar_extend (x1) - 0063
specialize signed_table_scalar_extend (x2) - 0064
apply signed_table_scalar_extend - 0065
exact hp_witness - 0066
exact hnext_witness_left - 0067
exact hnext_witness_right_left - 0068
exact he0_witness - 0069
exact hnext_witness_right_right - 0070
exact hv_witness