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.
Exact expanded first-order arithmetic statement
forall pb pc eb ec vb vc l g rb rc. exists w. (exists ppf_code_0_code_constructed ppf_code_1_code_constructed ppf_code_2_code_constructed ppf_code_3_code_constructed ppf_code_4_code_constructed ppf_code_5_code_constructed ppf_code_6_code_constructed ppf_code_7_code_constructed. ((((w) = ((pb) + (ppf_code_0_code_constructed)) * S ((pb) + (ppf_code_0_code_constructed)) + ((ppf_code_0_code_constructed) + (ppf_code_0_code_constructed))) /\ ((((ppf_code_0_code_constructed) = ((pc) + (ppf_code_1_code_constructed)) * S ((pc) + (ppf_code_1_code_constructed)) + ((ppf_code_1_code_constructed) + (ppf_code_1_code_constructed))) /\ ((((ppf_code_1_code_constructed) = ((eb) + (ppf_code_2_code_constructed)) * S ((eb) + (ppf_code_2_code_constructed)) + ((ppf_code_2_code_constructed) + (ppf_code_2_code_constructed))) /\ ((((ppf_code_2_code_constructed) = ((ec) + (ppf_code_3_code_constructed)) * S ((ec) + (ppf_code_3_code_constructed)) + ((ppf_code_3_code_constructed) + (ppf_code_3_code_constructed))) /\ ((((ppf_code_3_code_constructed) = ((vb) + (ppf_code_4_code_constructed)) * S ((vb) + (ppf_code_4_code_constructed)) + ((ppf_code_4_code_constructed) + (ppf_code_4_code_constructed))) /\ ((((ppf_code_4_code_constructed) = ((vc) + (ppf_code_5_code_constructed)) * S ((vc) + (ppf_code_5_code_constructed)) + ((ppf_code_5_code_constructed) + (ppf_code_5_code_constructed))) /\ ((((ppf_code_5_code_constructed) = ((l) + (ppf_code_6_code_constructed)) * S ((l) + (ppf_code_6_code_constructed)) + ((ppf_code_6_code_constructed) + (ppf_code_6_code_constructed))) /\ ((((ppf_code_6_code_constructed) = ((g) + (ppf_code_7_code_constructed)) * S ((g) + (ppf_code_7_code_constructed)) + ((ppf_code_7_code_constructed) + (ppf_code_7_code_constructed))) /\ ((ppf_code_7_code_constructed) = ((rb) + (rc)) * S ((rb) + (rc)) + ((rc) + (rc))))))))))))))))))))Constructive proof overview
Generated structural guide
Nine actual historical Pair constructors package the ten finite data fields without expanding a huge nested arithmetic numeral.
The unchanged tactic script uses 1 declared prerequisite and contains 81 exact native proof lines.
Alpha v34 checked-use · first admitted v29 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
pair_code_constructor Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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.
01Fix variables and assumptionsL1–10
02Establish hpair8L11–14
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hpair8
04Establish hpair7L16–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
05Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
cases hpair7
06Establish hpair6L21–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
07Separate the logical casesL25–25
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L25
cases hpair6
08Establish hpair5L26–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
09Separate the logical casesL30–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L30
cases hpair5
10Establish hpair4L31–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
11Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
cases hpair4
12Establish hpair3L36–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
13Separate the logical casesL40–40
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L40
cases hpair3
14Establish hpair2L41–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
15Separate the logical casesL45–45
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L45
cases hpair2
16Establish hpair1L46–49
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
17Separate the logical casesL50–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L50
cases hpair1
18Establish hpair0L51–54
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply pair code constructor.
19Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
cases hpair0
20Construct an explicit witnessL56–64
21Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
22Use earlier factsL66–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
exact hpair0_witness
23Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
24Use earlier factsL68–68
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hpair1_witness
25Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
split
26Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hpair2_witness
27Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
28Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
exact hpair3_witness
29Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
split
30Use earlier factsL74–74
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L74
exact hpair4_witness
31Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
split
32Use earlier factsL76–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L76
exact hpair5_witness
33Separate the logical casesL77–77
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L77
split
34Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hpair6_witness
35Separate the logical casesL79–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L79
split
Original exact command ledger · 81 lines
- 0001
intro pb - 0002
intro pc - 0003
intro eb - 0004
intro ec - 0005
intro vb - 0006
intro vc - 0007
intro l - 0008
intro g - 0009
intro rb - 0010
intro rc - 0011
have hpair8 : exists z. ((z) = ((rb) + (rc)) * S ((rb) + (rc)) + ((rc) + (rc))) - 0012
specialize pair_code_constructor (rb) - 0013
specialize pair_code_constructor (rc) - 0014
apply pair_code_constructor - 0015
cases hpair8 - 0016
have hpair7 : exists z. ((z) = ((g) + (x)) * S ((g) + (x)) + ((x) + (x))) - 0017
specialize pair_code_constructor (g) - 0018
specialize pair_code_constructor (x) - 0019
apply pair_code_constructor - 0020
cases hpair7 - 0021
have hpair6 : exists z. ((z) = ((l) + (x1)) * S ((l) + (x1)) + ((x1) + (x1))) - 0022
specialize pair_code_constructor (l) - 0023
specialize pair_code_constructor (x1) - 0024
apply pair_code_constructor - 0025
cases hpair6 - 0026
have hpair5 : exists z. ((z) = ((vc) + (x2)) * S ((vc) + (x2)) + ((x2) + (x2))) - 0027
specialize pair_code_constructor (vc) - 0028
specialize pair_code_constructor (x2) - 0029
apply pair_code_constructor - 0030
cases hpair5 - 0031
have hpair4 : exists z. ((z) = ((vb) + (x3)) * S ((vb) + (x3)) + ((x3) + (x3))) - 0032
specialize pair_code_constructor (vb) - 0033
specialize pair_code_constructor (x3) - 0034
apply pair_code_constructor - 0035
cases hpair4 - 0036
have hpair3 : exists z. ((z) = ((ec) + (x4)) * S ((ec) + (x4)) + ((x4) + (x4))) - 0037
specialize pair_code_constructor (ec) - 0038
specialize pair_code_constructor (x4) - 0039
apply pair_code_constructor - 0040
cases hpair3 - 0041
have hpair2 : exists z. ((z) = ((eb) + (x5)) * S ((eb) + (x5)) + ((x5) + (x5))) - 0042
specialize pair_code_constructor (eb) - 0043
specialize pair_code_constructor (x5) - 0044
apply pair_code_constructor - 0045
cases hpair2 - 0046
have hpair1 : exists z. ((z) = ((pc) + (x6)) * S ((pc) + (x6)) + ((x6) + (x6))) - 0047
specialize pair_code_constructor (pc) - 0048
specialize pair_code_constructor (x6) - 0049
apply pair_code_constructor - 0050
cases hpair1 - 0051
have hpair0 : exists z. ((z) = ((pb) + (x7)) * S ((pb) + (x7)) + ((x7) + (x7))) - 0052
specialize pair_code_constructor (pb) - 0053
specialize pair_code_constructor (x7) - 0054
apply pair_code_constructor - 0055
cases hpair0 - 0056
exists x8 - 0057
exists x7 - 0058
exists x6 - 0059
exists x5 - 0060
exists x4 - 0061
exists x3 - 0062
exists x2 - 0063
exists x1 - 0064
exists x - 0065
split - 0066
exact hpair0_witness - 0067
split - 0068
exact hpair1_witness - 0069
split - 0070
exact hpair2_witness - 0071
split - 0072
exact hpair3_witness - 0073
split - 0074
exact hpair4_witness - 0075
split - 0076
exact hpair5_witness - 0077
split - 0078
exact hpair6_witness - 0079
split - 0080
exact hpair7_witness - 0081
exact hpair8_witness