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. ∀ F. ∀ G. ArithTable(l,F) → ArithTable(l,G) → ∃ x. ArithMul(F,G,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 88 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–5
02Construct an explicit witnessL6–6
Supply the displayed value, then prove that it has the required property.
- L6
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 factsL7–16
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L7
specialize signed_table_multiply_empty (F) - L8
specialize signed_table_multiply_empty (G) - L9
specialize signed_table_multiply_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))))) - L10
apply signed_table_multiply_empty - L11
exact ht0 - L12
exact ht1 - L13
specialize divisor_signed_table_from_components (0) - L14
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))))) - L15
specialize divisor_signed_table_from_components (0) - L16
specialize divisor_signed_table_from_components (0)
04Use earlier factsL17–19
05Calculate and transport equalitiesL20–20
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L20
refl
06Fix variables and assumptionsL21–24
07Establish hpL25–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L25
have hp : ∃ K. ArithMul(F,G,K,l)Definitions: ArithMul(F,G,K,l)Original native command in the exact edition - L26
specialize IH (F) - L27
specialize IH (G) - L28
apply IH - L29
specialize signed_table_domain_resize (S l) - L30
specialize signed_table_domain_resize (l) - L31
specialize signed_table_domain_resize (F) - L32
apply signed_table_domain_resize - L33
exact ht0 - L34
specialize signed_table_domain_resize (S l)
08Use earlier factsL35–38
09Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
cases hp
10Establish he0L40–45
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L40
have he0 : ∃ z. ArithAt(F,l,z)Definitions: ArithAt(F,l,z)Original native command in the exact edition - L41
specialize signed_table_lookup_any (S l) - L42
specialize signed_table_lookup_any (F) - L43
specialize signed_table_lookup_any (l) - L44
apply signed_table_lookup_any - L45
exact ht0
11Separate the logical casesL46–46
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L46
cases he0
12Establish he1L47–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
- L47
have he1 : ∃ z. ArithAt(G,l,z)Definitions: ArithAt(G,l,z)Original native command in the exact edition - L48
specialize signed_table_lookup_any (S l) - L49
specialize signed_table_lookup_any (G) - L50
specialize signed_table_lookup_any (l) - L51
apply signed_table_lookup_any - L52
exact ht1
13Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
cases he1
14Establish hvL54–57
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed mul total.
- L54
have hv : ∃ z. SignedMul(x1,x2,z)Definitions: SignedMul(x1,x2,z)Original native command in the exact edition - L55
specialize signed_mul_total (x1) - L56
specialize signed_mul_total (x2) - L57
apply signed_mul_total
15Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
cases hv
16Establish hnextL59–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table extend at.
- L59
have hnext : ∃ K. ArithExtend(x,K,l,x3)Definitions: ArithExtend(x,K,l,x3)Original native command in the exact edition - L60
specialize arithmetic_signed_table_extend_at (l) - L61
specialize arithmetic_signed_table_extend_at (x) - L62
specialize arithmetic_signed_table_extend_at (l) - L63
specialize arithmetic_signed_table_extend_at (x3) - L64
apply arithmetic_signed_table_extend_at
17Separate the logical casesL65–67
18Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hp_witness_right_right_left
19Separate the logical casesL69–71
20Construct an explicit witnessL72–72
Supply the displayed value, then prove that it has the required property.
- L72
exists x4
21Use earlier factsL73–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L73
specialize signed_table_multiply_extend (F) - L74
specialize signed_table_multiply_extend (G) - L75
specialize signed_table_multiply_extend (x) - L76
specialize signed_table_multiply_extend (x4) - L77
specialize signed_table_multiply_extend (l) - L78
specialize signed_table_multiply_extend (x1) - L79
specialize signed_table_multiply_extend (x2) - L80
specialize signed_table_multiply_extend (x3) - L81
apply signed_table_multiply_extend - L82
exact hp_witness
Original defined command ledger · 88 lines
- 0001
induction l - 0002
intro F - 0003
intro G - 0004
intro ht0 - 0005
intro ht1 - 0006
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)))) - 0007
specialize signed_table_multiply_empty (F) - 0008
specialize signed_table_multiply_empty (G) - 0009
specialize signed_table_multiply_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))))) - 0010
apply signed_table_multiply_empty - 0011
exact ht0 - 0012
exact ht1 - 0013
specialize divisor_signed_table_from_components (0) - 0014
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))))) - 0015
specialize divisor_signed_table_from_components (0) - 0016
specialize divisor_signed_table_from_components (0) - 0017
specialize divisor_signed_table_from_components (0) - 0018
specialize divisor_signed_table_from_components (0) - 0019
apply divisor_signed_table_from_components - 0020
refl - 0021
intro F - 0022
intro G - 0023
intro ht0 - 0024
intro ht1 - 0025
have hp : ∃ K. ArithMul(F,G,K,l) - 0026
specialize IH (F) - 0027
specialize IH (G) - 0028
apply IH - 0029
specialize signed_table_domain_resize (S l) - 0030
specialize signed_table_domain_resize (l) - 0031
specialize signed_table_domain_resize (F) - 0032
apply signed_table_domain_resize - 0033
exact ht0 - 0034
specialize signed_table_domain_resize (S l) - 0035
specialize signed_table_domain_resize (l) - 0036
specialize signed_table_domain_resize (G) - 0037
apply signed_table_domain_resize - 0038
exact ht1 - 0039
cases hp - 0040
have he0 : ∃ z. ArithAt(F,l,z) - 0041
specialize signed_table_lookup_any (S l) - 0042
specialize signed_table_lookup_any (F) - 0043
specialize signed_table_lookup_any (l) - 0044
apply signed_table_lookup_any - 0045
exact ht0 - 0046
cases he0 - 0047
have he1 : ∃ z. ArithAt(G,l,z) - 0048
specialize signed_table_lookup_any (S l) - 0049
specialize signed_table_lookup_any (G) - 0050
specialize signed_table_lookup_any (l) - 0051
apply signed_table_lookup_any - 0052
exact ht1 - 0053
cases he1 - 0054
have hv : ∃ z. SignedMul(x1,x2,z) - 0055
specialize signed_mul_total (x1) - 0056
specialize signed_mul_total (x2) - 0057
apply signed_mul_total - 0058
cases hv - 0059
have hnext : ∃ K. ArithExtend(x,K,l,x3) - 0060
specialize arithmetic_signed_table_extend_at (l) - 0061
specialize arithmetic_signed_table_extend_at (x) - 0062
specialize arithmetic_signed_table_extend_at (l) - 0063
specialize arithmetic_signed_table_extend_at (x3) - 0064
apply arithmetic_signed_table_extend_at - 0065
cases hp_witness - 0066
cases hp_witness_right - 0067
cases hp_witness_right_right - 0068
exact hp_witness_right_right_left - 0069
cases hnext - 0070
cases hnext_witness - 0071
cases hnext_witness_right - 0072
exists x4 - 0073
specialize signed_table_multiply_extend (F) - 0074
specialize signed_table_multiply_extend (G) - 0075
specialize signed_table_multiply_extend (x) - 0076
specialize signed_table_multiply_extend (x4) - 0077
specialize signed_table_multiply_extend (l) - 0078
specialize signed_table_multiply_extend (x1) - 0079
specialize signed_table_multiply_extend (x2) - 0080
specialize signed_table_multiply_extend (x3) - 0081
apply signed_table_multiply_extend - 0082
exact hp_witness - 0083
exact hnext_witness_left - 0084
exact hnext_witness_right_left - 0085
exact he0_witness - 0086
exact he1_witness - 0087
exact hnext_witness_right_right - 0088
exact hv_witness