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.
Sets are complete characteristic-bit codes with actual finite cardinality witnesses. The proof constructs translations and the sumset; no finite-choice oracle, supplied cardinality conclusion, or unproved polynomial-method premise is used.
Exact theorem in conservative defined notation
∀ b. ∀ c. ∀ d. ∀ e. ∀ ub. ∀ uc. ∀ tb. ∀ tc. ∀ zb. ∀ zc. ∀ p. ∀ l. ∀ v. ¬p = 0 → Lt(l,p) → l + v = p → BetaAt(d,e,l,1) → (∀ x. Lt(x,p) → (BetaAt(ub,uc,x,1) → ∃ y. ∃ z. ModularSetMember(b,c,p,y) ∧ (ModularSetMember(d,e,p,z) ∧ (Lt(z,l) ∧ ModEq(p,y + z,x)))) ∧ ((∃ y. ∃ z. ModularSetMember(b,c,p,y) ∧ (ModularSetMember(d,e,p,z) ∧ (Lt(z,l) ∧ ModEq(p,y + z,x)))) → BetaAt(ub,uc,x,1))) → ModularSetPullback(b,c,tb,tc,p,v) → ModularSetUnion(ub,uc,tb,tc,zb,zc,p) → ∀ x. Lt(x,p) → (BetaAt(zb,zc,x,1) → ∃ y. ∃ z. ModularSetMember(b,c,p,y) ∧ (ModularSetMember(d,e,p,z) ∧ (Lt(z,S l) ∧ ModEq(p,y + z,x)))) ∧ ((∃ y. ∃ z. ModularSetMember(b,c,p,y) ∧ (ModularSetMember(d,e,p,z) ∧ (Lt(z,S l) ∧ ModEq(p,y + z,x)))) → BetaAt(zb,zc,x,1))
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete tactic proof in conservative notation
All 122 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–22
04Establish hpreL23–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hprefix.
- L23
have hpre : (BetaAt(ub,uc,z,1) → ∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ (Lt(y,l) ∧ ModEq(p,x + y,z)))) ∧ ((∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ (Lt(y,l) ∧ ModEq(p,x + y,z)))) → BetaAt(ub,uc,z,1))Definitions: BetaAt(ub,uc,z,1)ModularSetMember(b,c,p,x)ModularSetMember(d,e,p,y)Lt(y,l)ModEq(p,x + y,z)Original native command in the exact edition - L24
specialize hprefix z - L25
apply hprefix - L26
exact hz
05Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hpre
06Establish hshiftL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite modular pushforward membership witness.
- L28
have hshift : (BetaAt(tb,tc,z,1) → ∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,x + l,z)) ∧ ((∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,x + l,z)) → BetaAt(tb,tc,z,1))Definitions: BetaAt(tb,tc,z,1)ModularSetMember(b,c,p,x)ModEq(p,x + l,z)Original native command in the exact edition - L29
specialize finite_modular_pushforward_membership_witness b - L30
specialize finite_modular_pushforward_membership_witness c - L31
specialize finite_modular_pushforward_membership_witness tb - L32
specialize finite_modular_pushforward_membership_witness tc - L33
specialize finite_modular_pushforward_membership_witness p - L34
specialize finite_modular_pushforward_membership_witness l - L35
specialize finite_modular_pushforward_membership_witness v - L36
specialize finite_modular_pushforward_membership_witness z - L37
apply finite_modular_pushforward_membership_witness
07Use earlier factsL38–41
08Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
cases hshift
09Establish hunL43–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hunion.
- L43
have hun : (BetaAt(zb,zc,z,1) → BetaAt(ub,uc,z,1) ∨ BetaAt(tb,tc,z,1)) ∧ (BetaAt(ub,uc,z,1) ∨ BetaAt(tb,tc,z,1) → BetaAt(zb,zc,z,1))Definitions: BetaAt(zb,zc,z,1)BetaAt(ub,uc,z,1)BetaAt(tb,tc,z,1)Original native command in the exact edition - L44
specialize hunion z - L45
apply hunion - L46
exact hz
10Separate the logical casesL47–48
11Fix variables and assumptionsL49–49
Work with arbitrary variables or the premises of the current implication.
- L49
intro hnew
12Establish hcL50–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hun left.
- L50
have hc : BetaAt(ub,uc,z,1) ∨ BetaAt(tb,tc,z,1)Definitions: BetaAt(ub,uc,z,1)BetaAt(tb,tc,z,1)Original native command in the exact edition - L51
apply hun_left - L52
exact hnew
13Separate the logical casesL53–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L53
cases hc
14Establish hwL54–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpre left.
- L54
have hw : ∃ fms_first_partial. ∃ fms_second_partial. ModularSetMember(b,c,p,fms_first_partial) ∧ (ModularSetMember(d,e,p,fms_second_partial) ∧ (Lt(fms_second_partial,l) ∧ ModEq(p,fms_first_partial + fms_second_partial,z)))Definitions: ModularSetMember(b,c,p,fms_first_partial)ModularSetMember(d,e,p,fms_second_partial)Lt(fms_second_partial,l)ModEq(p,fms_first_partial + fms_second_partial,z)Original native command in the exact edition - L55
apply hpre_left - L56
exact hc_left
15Separate the logical casesL57–61
16Construct an explicit witnessL62–63
17Separate the logical casesL64–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L64
split
18Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
exact hw_witness_witness_left
19Separate the logical casesL66–66
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L66
split
20Use earlier factsL67–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hw_witness_witness_right_left
21Separate the logical casesL68–68
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L68
split
22Use earlier factsL69–73
23Establish hwL74–76
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hshift left.
- L74
have hw : ∃ a. ModularSetMember(b,c,p,a) ∧ ModEq(p,a + l,z)Definitions: ModularSetMember(b,c,p,a)ModEq(p,a + l,z)Original native command in the exact edition - L75
apply hshift_left - L76
exact hc_right
24Separate the logical casesL77–78
25Construct an explicit witnessL79–80
26Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
split
27Use earlier factsL82–82
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
exact hw_witness_left
28Separate the logical casesL83–84
29Use earlier factsL85–86
30Separate the logical casesL87–87
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L87
split
31Use earlier factsL88–90
32Fix variables and assumptionsL91–91
Work with arbitrary variables or the premises of the current implication.
- L91
intro hw
33Separate the logical casesL92–96
34Establish hcaseL97–101
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
35Separate the logical casesL102–102
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L102
cases hcase
36Use earlier factsL103–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
apply hun_right
37Separate the logical casesL104–104
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L104
right
38Use earlier factsL105–105
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L105
apply hshift_right
39Construct an explicit witnessL106–106
Supply the displayed value, then prove that it has the required property.
- L106
exists x
40Separate the logical casesL107–107
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L107
split
41Use earlier factsL108–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
exact hw_witness_witness_left
42Calculate and transport equalitiesL109–109
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L109
rewrite hcase_left at hw_witness_witness_right_right_right
43Use earlier factsL110–111
44Separate the logical casesL112–112
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L112
left
45Use earlier factsL113–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L113
apply hpre_right
46Construct an explicit witnessL114–115
47Separate the logical casesL116–116
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L116
split
48Use earlier factsL117–117
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L117
exact hw_witness_witness_left
49Separate the logical casesL118–118
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L118
split
50Use earlier factsL119–119
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L119
exact hw_witness_witness_right_left
51Separate the logical casesL120–120
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L120
split
Original defined command ledger · 122 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro ub - 0006
intro uc - 0007
intro tb - 0008
intro tc - 0009
intro zb - 0010
intro zc - 0011
intro p - 0012
intro l - 0013
intro v - 0014
intro hp - 0015
intro hl - 0016
intro hlv - 0017
intro hB - 0018
intro hprefix - 0019
intro hpull - 0020
intro hunion - 0021
intro z - 0022
intro hz - 0023
have hpre : (BetaAt(ub,uc,z,1) → ∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ (Lt(y,l) ∧ ModEq(p,x + y,z)))) ∧ ((∃ x. ∃ y. ModularSetMember(b,c,p,x) ∧ (ModularSetMember(d,e,p,y) ∧ (Lt(y,l) ∧ ModEq(p,x + y,z)))) → BetaAt(ub,uc,z,1)) - 0024
specialize hprefix z - 0025
apply hprefix - 0026
exact hz - 0027
cases hpre - 0028
have hshift : (BetaAt(tb,tc,z,1) → ∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,x + l,z)) ∧ ((∃ x. ModularSetMember(b,c,p,x) ∧ ModEq(p,x + l,z)) → BetaAt(tb,tc,z,1)) - 0029
specialize finite_modular_pushforward_membership_witness b - 0030
specialize finite_modular_pushforward_membership_witness c - 0031
specialize finite_modular_pushforward_membership_witness tb - 0032
specialize finite_modular_pushforward_membership_witness tc - 0033
specialize finite_modular_pushforward_membership_witness p - 0034
specialize finite_modular_pushforward_membership_witness l - 0035
specialize finite_modular_pushforward_membership_witness v - 0036
specialize finite_modular_pushforward_membership_witness z - 0037
apply finite_modular_pushforward_membership_witness - 0038
exact hp - 0039
exact hlv - 0040
exact hpull - 0041
exact hz - 0042
cases hshift - 0043
have hun : (BetaAt(zb,zc,z,1) → BetaAt(ub,uc,z,1) ∨ BetaAt(tb,tc,z,1)) ∧ (BetaAt(ub,uc,z,1) ∨ BetaAt(tb,tc,z,1) → BetaAt(zb,zc,z,1)) - 0044
specialize hunion z - 0045
apply hunion - 0046
exact hz - 0047
cases hun - 0048
split - 0049
intro hnew - 0050
have hc : BetaAt(ub,uc,z,1) ∨ BetaAt(tb,tc,z,1) - 0051
apply hun_left - 0052
exact hnew - 0053
cases hc - 0054
have hw : ∃ fms_first_partial. ∃ fms_second_partial. ModularSetMember(b,c,p,fms_first_partial) ∧ (ModularSetMember(d,e,p,fms_second_partial) ∧ (Lt(fms_second_partial,l) ∧ ModEq(p,fms_first_partial + fms_second_partial,z))) - 0055
apply hpre_left - 0056
exact hc_left - 0057
cases hw - 0058
cases hw_witness - 0059
cases hw_witness_witness - 0060
cases hw_witness_witness_right - 0061
cases hw_witness_witness_right_right - 0062
exists x - 0063
exists x1 - 0064
split - 0065
exact hw_witness_witness_left - 0066
split - 0067
exact hw_witness_witness_right_left - 0068
split - 0069
specialize le_succ S x1 - 0070
specialize le_succ l - 0071
apply le_succ - 0072
exact hw_witness_witness_right_right_left - 0073
exact hw_witness_witness_right_right_right - 0074
have hw : ∃ a. ModularSetMember(b,c,p,a) ∧ ModEq(p,a + l,z) - 0075
apply hshift_left - 0076
exact hc_right - 0077
cases hw - 0078
cases hw_witness - 0079
exists x - 0080
exists l - 0081
split - 0082
exact hw_witness_left - 0083
split - 0084
split - 0085
exact hl - 0086
exact hB - 0087
split - 0088
specialize le_refl S l - 0089
apply le_refl - 0090
exact hw_witness_right - 0091
intro hw - 0092
cases hw - 0093
cases hw_witness - 0094
cases hw_witness_witness - 0095
cases hw_witness_witness_right - 0096
cases hw_witness_witness_right_right - 0097
have hcase : x1 = l ∨ Lt(x1,l) - 0098
specialize finite_lt_succ_eq_or_lt l - 0099
specialize finite_lt_succ_eq_or_lt x1 - 0100
apply finite_lt_succ_eq_or_lt - 0101
exact hw_witness_witness_right_right_left - 0102
cases hcase - 0103
apply hun_right - 0104
right - 0105
apply hshift_right - 0106
exists x - 0107
split - 0108
exact hw_witness_witness_left - 0109
rewrite hcase_left at hw_witness_witness_right_right_right - 0110
exact hw_witness_witness_right_right_right - 0111
apply hun_right - 0112
left - 0113
apply hpre_right - 0114
exists x - 0115
exists x1 - 0116
split - 0117
exact hw_witness_witness_left - 0118
split - 0119
exact hw_witness_witness_right_left - 0120
split - 0121
exact hcase_right - 0122
exact hw_witness_witness_right_right_right