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 expanded first-order arithmetic statement
forall N F l z. (exists dst_positive_code_extend_input dst_positive_scale_extend_input dst_negative_code_extend_input dst_negative_scale_extend_input. (((F) = (((((dst_positive_code_extend_input) + (dst_positive_scale_extend_input)) * S ((dst_positive_code_extend_input) + (dst_positive_scale_extend_input)) + ((dst_positive_scale_extend_input) + (dst_positive_scale_extend_input))) + (((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) * S ((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) + ((dst_negative_scale_extend_input) + (dst_negative_scale_extend_input)))) * S ((((dst_positive_code_extend_input) + (dst_positive_scale_extend_input)) * S ((dst_positive_code_extend_input) + (dst_positive_scale_extend_input)) + ((dst_positive_scale_extend_input) + (dst_positive_scale_extend_input))) + (((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) * S ((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) + ((dst_negative_scale_extend_input) + (dst_negative_scale_extend_input)))) + ((((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) * S ((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) + ((dst_negative_scale_extend_input) + (dst_negative_scale_extend_input))) + (((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) * S ((dst_negative_code_extend_input) + (dst_negative_scale_extend_input)) + ((dst_negative_scale_extend_input) + (dst_negative_scale_extend_input)))))) /\ (forall dst_index_extend_input. (exists pvs_le_gap_extend_inputdomain. pvs_le_gap_extend_inputdomain + (dst_index_extend_input) = (N)) -> exists dst_positive_extend_input dst_negative_extend_input dst_value_extend_input. ((((exists ff_h_pvs_extend_inputentrypositive. ff_h_pvs_extend_inputentrypositive + S (dst_positive_extend_input) = S ((S (dst_index_extend_input)) * dst_positive_scale_extend_input)) /\ exists ff_q_pvs_extend_inputentrypositive. dst_positive_code_extend_input = ff_q_pvs_extend_inputentrypositive * S ((S (dst_index_extend_input)) * dst_positive_scale_extend_input) + (dst_positive_extend_input))) /\ (((((exists ff_h_pvs_extend_inputentrynegative. ff_h_pvs_extend_inputentrynegative + S (dst_negative_extend_input) = S ((S (dst_index_extend_input)) * dst_negative_scale_extend_input)) /\ exists ff_q_pvs_extend_inputentrynegative. dst_negative_code_extend_input = ff_q_pvs_extend_inputentrynegative * S ((S (dst_index_extend_input)) * dst_negative_scale_extend_input) + (dst_negative_extend_input))) /\ (exists ge_balance_positive_extend_inputentryvalue ge_balance_negative_extend_inputentryvalue. (((((dst_value_extend_input) = 2 * (ge_balance_positive_extend_inputentryvalue) /\ (ge_balance_negative_extend_inputentryvalue) = 0) \/ exists ge_signed_half_extend_inputentryvaluedecode. (((dst_value_extend_input) = 2 * ge_signed_half_extend_inputentryvaluedecode + 1 /\ (ge_balance_positive_extend_inputentryvalue) = 0) /\ (ge_balance_negative_extend_inputentryvalue) = S ge_signed_half_extend_inputentryvaluedecode))) /\ ((dst_positive_extend_input) + ge_balance_negative_extend_inputentryvalue = (dst_negative_extend_input) + ge_balance_positive_extend_inputentryvalue))))))))) -> exists G. (((exists dst_positive_code_extend_outputtable dst_positive_scale_extend_outputtable dst_negative_code_extend_outputtable dst_negative_scale_extend_outputtable. (((G) = (((((dst_positive_code_extend_outputtable) + (dst_positive_scale_extend_outputtable)) * S ((dst_positive_code_extend_outputtable) + (dst_positive_scale_extend_outputtable)) + ((dst_positive_scale_extend_outputtable) + (dst_positive_scale_extend_outputtable))) + (((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) * S ((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) + ((dst_negative_scale_extend_outputtable) + (dst_negative_scale_extend_outputtable)))) * S ((((dst_positive_code_extend_outputtable) + (dst_positive_scale_extend_outputtable)) * S ((dst_positive_code_extend_outputtable) + (dst_positive_scale_extend_outputtable)) + ((dst_positive_scale_extend_outputtable) + (dst_positive_scale_extend_outputtable))) + (((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) * S ((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) + ((dst_negative_scale_extend_outputtable) + (dst_negative_scale_extend_outputtable)))) + ((((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) * S ((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) + ((dst_negative_scale_extend_outputtable) + (dst_negative_scale_extend_outputtable))) + (((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) * S ((dst_negative_code_extend_outputtable) + (dst_negative_scale_extend_outputtable)) + ((dst_negative_scale_extend_outputtable) + (dst_negative_scale_extend_outputtable)))))) /\ (forall dst_index_extend_outputtable. (exists pvs_le_gap_extend_outputtabledomain. pvs_le_gap_extend_outputtabledomain + (dst_index_extend_outputtable) = (l)) -> exists dst_positive_extend_outputtable dst_negative_extend_outputtable dst_value_extend_outputtable. ((((exists ff_h_pvs_extend_outputtableentrypositive. ff_h_pvs_extend_outputtableentrypositive + S (dst_positive_extend_outputtable) = S ((S (dst_index_extend_outputtable)) * dst_positive_scale_extend_outputtable)) /\ exists ff_q_pvs_extend_outputtableentrypositive. dst_positive_code_extend_outputtable = ff_q_pvs_extend_outputtableentrypositive * S ((S (dst_index_extend_outputtable)) * dst_positive_scale_extend_outputtable) + (dst_positive_extend_outputtable))) /\ (((((exists ff_h_pvs_extend_outputtableentrynegative. ff_h_pvs_extend_outputtableentrynegative + S (dst_negative_extend_outputtable) = S ((S (dst_index_extend_outputtable)) * dst_negative_scale_extend_outputtable)) /\ exists ff_q_pvs_extend_outputtableentrynegative. dst_negative_code_extend_outputtable = ff_q_pvs_extend_outputtableentrynegative * S ((S (dst_index_extend_outputtable)) * dst_negative_scale_extend_outputtable) + (dst_negative_extend_outputtable))) /\ (exists ge_balance_positive_extend_outputtableentryvalue ge_balance_negative_extend_outputtableentryvalue. (((((dst_value_extend_outputtable) = 2 * (ge_balance_positive_extend_outputtableentryvalue) /\ (ge_balance_negative_extend_outputtableentryvalue) = 0) \/ exists ge_signed_half_extend_outputtableentryvaluedecode. (((dst_value_extend_outputtable) = 2 * ge_signed_half_extend_outputtableentryvaluedecode + 1 /\ (ge_balance_positive_extend_outputtableentryvalue) = 0) /\ (ge_balance_negative_extend_outputtableentryvalue) = S ge_signed_half_extend_outputtableentryvaluedecode))) /\ ((dst_positive_extend_outputtable) + ge_balance_negative_extend_outputtableentryvalue = (dst_negative_extend_outputtable) + ge_balance_positive_extend_outputtableentryvalue))))))))) /\ (((forall dst_index_extend_outputprefix dst_first_extend_outputprefix dst_second_extend_outputprefix. (exists pvs_gap_extend_outputprefixbound. pvs_gap_extend_outputprefixbound + S (dst_index_extend_outputprefix) = (l)) -> (exists dst_positive_code_extend_outputprefixfirst dst_positive_scale_extend_outputprefixfirst dst_negative_code_extend_outputprefixfirst dst_negative_scale_extend_outputprefixfirst dst_positive_extend_outputprefixfirst dst_negative_extend_outputprefixfirst. (((F) = (((((dst_positive_code_extend_outputprefixfirst) + (dst_positive_scale_extend_outputprefixfirst)) * S ((dst_positive_code_extend_outputprefixfirst) + (dst_positive_scale_extend_outputprefixfirst)) + ((dst_positive_scale_extend_outputprefixfirst) + (dst_positive_scale_extend_outputprefixfirst))) + (((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) * S ((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) + ((dst_negative_scale_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)))) * S ((((dst_positive_code_extend_outputprefixfirst) + (dst_positive_scale_extend_outputprefixfirst)) * S ((dst_positive_code_extend_outputprefixfirst) + (dst_positive_scale_extend_outputprefixfirst)) + ((dst_positive_scale_extend_outputprefixfirst) + (dst_positive_scale_extend_outputprefixfirst))) + (((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) * S ((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) + ((dst_negative_scale_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)))) + ((((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) * S ((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) + ((dst_negative_scale_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst))) + (((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) * S ((dst_negative_code_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)) + ((dst_negative_scale_extend_outputprefixfirst) + (dst_negative_scale_extend_outputprefixfirst)))))) /\ (((((exists ff_h_pvs_extend_outputprefixfirstpositive. ff_h_pvs_extend_outputprefixfirstpositive + S (dst_positive_extend_outputprefixfirst) = S ((S (dst_index_extend_outputprefix)) * dst_positive_scale_extend_outputprefixfirst)) /\ exists ff_q_pvs_extend_outputprefixfirstpositive. dst_positive_code_extend_outputprefixfirst = ff_q_pvs_extend_outputprefixfirstpositive * S ((S (dst_index_extend_outputprefix)) * dst_positive_scale_extend_outputprefixfirst) + (dst_positive_extend_outputprefixfirst))) /\ (((((exists ff_h_pvs_extend_outputprefixfirstnegative. ff_h_pvs_extend_outputprefixfirstnegative + S (dst_negative_extend_outputprefixfirst) = S ((S (dst_index_extend_outputprefix)) * dst_negative_scale_extend_outputprefixfirst)) /\ exists ff_q_pvs_extend_outputprefixfirstnegative. dst_negative_code_extend_outputprefixfirst = ff_q_pvs_extend_outputprefixfirstnegative * S ((S (dst_index_extend_outputprefix)) * dst_negative_scale_extend_outputprefixfirst) + (dst_negative_extend_outputprefixfirst))) /\ (exists ge_balance_positive_extend_outputprefixfirstvalue ge_balance_negative_extend_outputprefixfirstvalue. (((((dst_first_extend_outputprefix) = 2 * (ge_balance_positive_extend_outputprefixfirstvalue) /\ (ge_balance_negative_extend_outputprefixfirstvalue) = 0) \/ exists ge_signed_half_extend_outputprefixfirstvaluedecode. (((dst_first_extend_outputprefix) = 2 * ge_signed_half_extend_outputprefixfirstvaluedecode + 1 /\ (ge_balance_positive_extend_outputprefixfirstvalue) = 0) /\ (ge_balance_negative_extend_outputprefixfirstvalue) = S ge_signed_half_extend_outputprefixfirstvaluedecode))) /\ ((dst_positive_extend_outputprefixfirst) + ge_balance_negative_extend_outputprefixfirstvalue = (dst_negative_extend_outputprefixfirst) + ge_balance_positive_extend_outputprefixfirstvalue))))))))) -> (exists dst_positive_code_extend_outputprefixsecond dst_positive_scale_extend_outputprefixsecond dst_negative_code_extend_outputprefixsecond dst_negative_scale_extend_outputprefixsecond dst_positive_extend_outputprefixsecond dst_negative_extend_outputprefixsecond. (((G) = (((((dst_positive_code_extend_outputprefixsecond) + (dst_positive_scale_extend_outputprefixsecond)) * S ((dst_positive_code_extend_outputprefixsecond) + (dst_positive_scale_extend_outputprefixsecond)) + ((dst_positive_scale_extend_outputprefixsecond) + (dst_positive_scale_extend_outputprefixsecond))) + (((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) * S ((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) + ((dst_negative_scale_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)))) * S ((((dst_positive_code_extend_outputprefixsecond) + (dst_positive_scale_extend_outputprefixsecond)) * S ((dst_positive_code_extend_outputprefixsecond) + (dst_positive_scale_extend_outputprefixsecond)) + ((dst_positive_scale_extend_outputprefixsecond) + (dst_positive_scale_extend_outputprefixsecond))) + (((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) * S ((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) + ((dst_negative_scale_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)))) + ((((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) * S ((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) + ((dst_negative_scale_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond))) + (((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) * S ((dst_negative_code_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)) + ((dst_negative_scale_extend_outputprefixsecond) + (dst_negative_scale_extend_outputprefixsecond)))))) /\ (((((exists ff_h_pvs_extend_outputprefixsecondpositive. ff_h_pvs_extend_outputprefixsecondpositive + S (dst_positive_extend_outputprefixsecond) = S ((S (dst_index_extend_outputprefix)) * dst_positive_scale_extend_outputprefixsecond)) /\ exists ff_q_pvs_extend_outputprefixsecondpositive. dst_positive_code_extend_outputprefixsecond = ff_q_pvs_extend_outputprefixsecondpositive * S ((S (dst_index_extend_outputprefix)) * dst_positive_scale_extend_outputprefixsecond) + (dst_positive_extend_outputprefixsecond))) /\ (((((exists ff_h_pvs_extend_outputprefixsecondnegative. ff_h_pvs_extend_outputprefixsecondnegative + S (dst_negative_extend_outputprefixsecond) = S ((S (dst_index_extend_outputprefix)) * dst_negative_scale_extend_outputprefixsecond)) /\ exists ff_q_pvs_extend_outputprefixsecondnegative. dst_negative_code_extend_outputprefixsecond = ff_q_pvs_extend_outputprefixsecondnegative * S ((S (dst_index_extend_outputprefix)) * dst_negative_scale_extend_outputprefixsecond) + (dst_negative_extend_outputprefixsecond))) /\ (exists ge_balance_positive_extend_outputprefixsecondvalue ge_balance_negative_extend_outputprefixsecondvalue. (((((dst_second_extend_outputprefix) = 2 * (ge_balance_positive_extend_outputprefixsecondvalue) /\ (ge_balance_negative_extend_outputprefixsecondvalue) = 0) \/ exists ge_signed_half_extend_outputprefixsecondvaluedecode. (((dst_second_extend_outputprefix) = 2 * ge_signed_half_extend_outputprefixsecondvaluedecode + 1 /\ (ge_balance_positive_extend_outputprefixsecondvalue) = 0) /\ (ge_balance_negative_extend_outputprefixsecondvalue) = S ge_signed_half_extend_outputprefixsecondvaluedecode))) /\ ((dst_positive_extend_outputprefixsecond) + ge_balance_negative_extend_outputprefixsecondvalue = (dst_negative_extend_outputprefixsecond) + ge_balance_positive_extend_outputprefixsecondvalue))))))))) -> dst_first_extend_outputprefix = dst_second_extend_outputprefix) /\ (exists dst_positive_code_extend_outputlast dst_positive_scale_extend_outputlast dst_negative_code_extend_outputlast dst_negative_scale_extend_outputlast dst_positive_extend_outputlast dst_negative_extend_outputlast. (((G) = (((((dst_positive_code_extend_outputlast) + (dst_positive_scale_extend_outputlast)) * S ((dst_positive_code_extend_outputlast) + (dst_positive_scale_extend_outputlast)) + ((dst_positive_scale_extend_outputlast) + (dst_positive_scale_extend_outputlast))) + (((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) * S ((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) + ((dst_negative_scale_extend_outputlast) + (dst_negative_scale_extend_outputlast)))) * S ((((dst_positive_code_extend_outputlast) + (dst_positive_scale_extend_outputlast)) * S ((dst_positive_code_extend_outputlast) + (dst_positive_scale_extend_outputlast)) + ((dst_positive_scale_extend_outputlast) + (dst_positive_scale_extend_outputlast))) + (((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) * S ((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) + ((dst_negative_scale_extend_outputlast) + (dst_negative_scale_extend_outputlast)))) + ((((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) * S ((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) + ((dst_negative_scale_extend_outputlast) + (dst_negative_scale_extend_outputlast))) + (((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) * S ((dst_negative_code_extend_outputlast) + (dst_negative_scale_extend_outputlast)) + ((dst_negative_scale_extend_outputlast) + (dst_negative_scale_extend_outputlast)))))) /\ (((((exists ff_h_pvs_extend_outputlastpositive. ff_h_pvs_extend_outputlastpositive + S (dst_positive_extend_outputlast) = S ((S (l)) * dst_positive_scale_extend_outputlast)) /\ exists ff_q_pvs_extend_outputlastpositive. dst_positive_code_extend_outputlast = ff_q_pvs_extend_outputlastpositive * S ((S (l)) * dst_positive_scale_extend_outputlast) + (dst_positive_extend_outputlast))) /\ (((((exists ff_h_pvs_extend_outputlastnegative. ff_h_pvs_extend_outputlastnegative + S (dst_negative_extend_outputlast) = S ((S (l)) * dst_negative_scale_extend_outputlast)) /\ exists ff_q_pvs_extend_outputlastnegative. dst_negative_code_extend_outputlast = ff_q_pvs_extend_outputlastnegative * S ((S (l)) * dst_negative_scale_extend_outputlast) + (dst_negative_extend_outputlast))) /\ (exists ge_balance_positive_extend_outputlastvalue ge_balance_negative_extend_outputlastvalue. (((((z) = 2 * (ge_balance_positive_extend_outputlastvalue) /\ (ge_balance_negative_extend_outputlastvalue) = 0) \/ exists ge_signed_half_extend_outputlastvaluedecode. (((z) = 2 * ge_signed_half_extend_outputlastvaluedecode + 1 /\ (ge_balance_positive_extend_outputlastvalue) = 0) /\ (ge_balance_negative_extend_outputlastvalue) = S ge_signed_half_extend_outputlastvaluedecode))) /\ ((dst_positive_extend_outputlast) + ge_balance_negative_extend_outputlastvalue = (dst_negative_extend_outputlast) + ge_balance_positive_extend_outputlastvalue)))))))))))))Constructive proof overview
Generated structural guide
Decode the requested signed value, extend both beta streams at l, and explicitly construct the new packed table preserving exactly its earlier signed entries.
The unchanged tactic script uses 7 declared prerequisites and contains 82 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
divisor_signed_table_components Alpha theorem; checked-use authorized signed_decode_total Alpha theorem; checked-use authorized beta_prefix_extend Stable theorem; checked-use authorized divisor_signed_table_from_components Alpha theorem; checked-use authorized DV0001 arithmetic_signed_table_component_prefix_preserved divisor_signed_table_at_from_components Alpha theorem; checked-use authorized add_comm Stable 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.
Named ingredients (1)
01Fix variables and assumptionsL1–5
02Establish hrepL6–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply divisor signed table components.
- L6
have hrep : exists pb pc nb nc. ((F) = (((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) * S ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) + ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))))) - L7
specialize divisor_signed_table_components (N) - L8
specialize divisor_signed_table_components (F) - L9
apply divisor_signed_table_components - L10
exact ht
03Separate the logical casesL11–14
04Establish hdL15–17
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed decode total.
05Separate the logical casesL18–19
06Establish hpL20–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
07Separate the logical casesL26–28
08Establish hnL29–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
09Separate the logical casesL35–37
10Construct an explicit witnessL38–38
Supply the displayed value, then prove that it has the required property.
- L38
exists ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))
11Separate the logical casesL39–39
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L39
split
12Use earlier factsL40–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L40
specialize divisor_signed_table_from_components (l) - L41
specialize divisor_signed_table_from_components (((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))) - L42
specialize divisor_signed_table_from_components (x6) - L43
specialize divisor_signed_table_from_components (x7) - L44
specialize divisor_signed_table_from_components (x8) - L45
specialize divisor_signed_table_from_components (x9) - L46
apply divisor_signed_table_from_components
13Calculate and transport equalitiesL47–47
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L47
refl
14Separate the logical casesL48–48
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L48
split
15Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
specialize arithmetic_signed_table_component_prefix_preserved (F) - L50
specialize arithmetic_signed_table_component_prefix_preserved (((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))) - L51
specialize arithmetic_signed_table_component_prefix_preserved (x) - L52
specialize arithmetic_signed_table_component_prefix_preserved (x1) - L53
specialize arithmetic_signed_table_component_prefix_preserved (x2) - L54
specialize arithmetic_signed_table_component_prefix_preserved (x3) - L55
specialize arithmetic_signed_table_component_prefix_preserved (x6) - L56
specialize arithmetic_signed_table_component_prefix_preserved (x7) - L57
specialize arithmetic_signed_table_component_prefix_preserved (x8) - L58
specialize arithmetic_signed_table_component_prefix_preserved (x9)
16Use earlier factsL59–61
17Calculate and transport equalitiesL62–62
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L62
refl
18Use earlier factsL63–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
exact hp_witness_witness_right - L64
exact hn_witness_witness_right - L65
specialize divisor_signed_table_at_from_components (((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))) - L66
specialize divisor_signed_table_at_from_components (x6) - L67
specialize divisor_signed_table_at_from_components (x7) - L68
specialize divisor_signed_table_at_from_components (x8) - L69
specialize divisor_signed_table_at_from_components (x9) - L70
specialize divisor_signed_table_at_from_components (l) - L71
specialize divisor_signed_table_at_from_components (x4) - L72
specialize divisor_signed_table_at_from_components (x5)
19Use earlier factsL73–74
20Calculate and transport equalitiesL75–75
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L75
refl
21Use earlier factsL76–77
22Construct an explicit witnessL78–79
23Separate the logical casesL80–80
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L80
split
Original exact command ledger · 82 lines
- 0001
intro N - 0002
intro F - 0003
intro l - 0004
intro z - 0005
intro ht - 0006
have hrep : exists pb pc nb nc. ((F) = (((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) * S ((((pb) + (pc)) * S ((pb) + (pc)) + ((pc) + (pc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))) + ((((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc))) + (((nb) + (nc)) * S ((nb) + (nc)) + ((nc) + (nc)))))) - 0007
specialize divisor_signed_table_components (N) - 0008
specialize divisor_signed_table_components (F) - 0009
apply divisor_signed_table_components - 0010
exact ht - 0011
cases hrep - 0012
cases hrep_witness - 0013
cases hrep_witness_witness - 0014
cases hrep_witness_witness_witness - 0015
have hd : exists p n. ((((z) = 2 * (p) /\ (n) = 0) \/ exists ge_signed_half_extend_decode. (((z) = 2 * ge_signed_half_extend_decode + 1 /\ (p) = 0) /\ (n) = S ge_signed_half_extend_decode))) - 0016
specialize signed_decode_total (z) - 0017
apply signed_decode_total - 0018
cases hd - 0019
cases hd_witness - 0020
have hp : exists b c. (((((exists ff_h_pvs_extend_last_positive. ff_h_pvs_extend_last_positive + S (x4) = S ((S (l)) * c)) /\ exists ff_q_pvs_extend_last_positive. b = ff_q_pvs_extend_last_positive * S ((S (l)) * c) + (x4))) /\ (forall pfp_i_pvs_extend_old_positive pfp_a_pvs_extend_old_positive. (exists pfp_gap_pvs_extend_old_positivebound. pfp_gap_pvs_extend_old_positivebound + S (pfp_i_pvs_extend_old_positive) = (l)) -> (((exists ff_h_pfp_pvs_extend_old_positiveold. ff_h_pfp_pvs_extend_old_positiveold + S (pfp_a_pvs_extend_old_positive) = S ((S (pfp_i_pvs_extend_old_positive)) * x1)) /\ exists ff_q_pfp_pvs_extend_old_positiveold. x = ff_q_pfp_pvs_extend_old_positiveold * S ((S (pfp_i_pvs_extend_old_positive)) * x1) + (pfp_a_pvs_extend_old_positive))) -> (((exists ff_h_pfp_pvs_extend_old_positivenew. ff_h_pfp_pvs_extend_old_positivenew + S (pfp_a_pvs_extend_old_positive) = S ((S (pfp_i_pvs_extend_old_positive)) * c)) /\ exists ff_q_pfp_pvs_extend_old_positivenew. b = ff_q_pfp_pvs_extend_old_positivenew * S ((S (pfp_i_pvs_extend_old_positive)) * c) + (pfp_a_pvs_extend_old_positive)))))) - 0021
specialize beta_prefix_extend (l) - 0022
specialize beta_prefix_extend (x) - 0023
specialize beta_prefix_extend (x1) - 0024
specialize beta_prefix_extend (x4) - 0025
apply beta_prefix_extend - 0026
cases hp - 0027
cases hp_witness - 0028
cases hp_witness_witness - 0029
have hn : exists b c. (((((exists ff_h_pvs_extend_last_negative. ff_h_pvs_extend_last_negative + S (x5) = S ((S (l)) * c)) /\ exists ff_q_pvs_extend_last_negative. b = ff_q_pvs_extend_last_negative * S ((S (l)) * c) + (x5))) /\ (forall pfp_i_pvs_extend_old_negative pfp_a_pvs_extend_old_negative. (exists pfp_gap_pvs_extend_old_negativebound. pfp_gap_pvs_extend_old_negativebound + S (pfp_i_pvs_extend_old_negative) = (l)) -> (((exists ff_h_pfp_pvs_extend_old_negativeold. ff_h_pfp_pvs_extend_old_negativeold + S (pfp_a_pvs_extend_old_negative) = S ((S (pfp_i_pvs_extend_old_negative)) * x3)) /\ exists ff_q_pfp_pvs_extend_old_negativeold. x2 = ff_q_pfp_pvs_extend_old_negativeold * S ((S (pfp_i_pvs_extend_old_negative)) * x3) + (pfp_a_pvs_extend_old_negative))) -> (((exists ff_h_pfp_pvs_extend_old_negativenew. ff_h_pfp_pvs_extend_old_negativenew + S (pfp_a_pvs_extend_old_negative) = S ((S (pfp_i_pvs_extend_old_negative)) * c)) /\ exists ff_q_pfp_pvs_extend_old_negativenew. b = ff_q_pfp_pvs_extend_old_negativenew * S ((S (pfp_i_pvs_extend_old_negative)) * c) + (pfp_a_pvs_extend_old_negative)))))) - 0030
specialize beta_prefix_extend (l) - 0031
specialize beta_prefix_extend (x2) - 0032
specialize beta_prefix_extend (x3) - 0033
specialize beta_prefix_extend (x5) - 0034
apply beta_prefix_extend - 0035
cases hn - 0036
cases hn_witness - 0037
cases hn_witness_witness - 0038
exists ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) - 0039
split - 0040
specialize divisor_signed_table_from_components (l) - 0041
specialize divisor_signed_table_from_components (((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))) - 0042
specialize divisor_signed_table_from_components (x6) - 0043
specialize divisor_signed_table_from_components (x7) - 0044
specialize divisor_signed_table_from_components (x8) - 0045
specialize divisor_signed_table_from_components (x9) - 0046
apply divisor_signed_table_from_components - 0047
refl - 0048
split - 0049
specialize arithmetic_signed_table_component_prefix_preserved (F) - 0050
specialize arithmetic_signed_table_component_prefix_preserved (((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))) - 0051
specialize arithmetic_signed_table_component_prefix_preserved (x) - 0052
specialize arithmetic_signed_table_component_prefix_preserved (x1) - 0053
specialize arithmetic_signed_table_component_prefix_preserved (x2) - 0054
specialize arithmetic_signed_table_component_prefix_preserved (x3) - 0055
specialize arithmetic_signed_table_component_prefix_preserved (x6) - 0056
specialize arithmetic_signed_table_component_prefix_preserved (x7) - 0057
specialize arithmetic_signed_table_component_prefix_preserved (x8) - 0058
specialize arithmetic_signed_table_component_prefix_preserved (x9) - 0059
specialize arithmetic_signed_table_component_prefix_preserved (l) - 0060
apply arithmetic_signed_table_component_prefix_preserved - 0061
exact hrep_witness_witness_witness_witness - 0062
refl - 0063
exact hp_witness_witness_right - 0064
exact hn_witness_witness_right - 0065
specialize divisor_signed_table_at_from_components (((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) * S ((((x6) + (x7)) * S ((x6) + (x7)) + ((x7) + (x7))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9)))) + ((((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))) + (((x8) + (x9)) * S ((x8) + (x9)) + ((x9) + (x9))))) - 0066
specialize divisor_signed_table_at_from_components (x6) - 0067
specialize divisor_signed_table_at_from_components (x7) - 0068
specialize divisor_signed_table_at_from_components (x8) - 0069
specialize divisor_signed_table_at_from_components (x9) - 0070
specialize divisor_signed_table_at_from_components (l) - 0071
specialize divisor_signed_table_at_from_components (x4) - 0072
specialize divisor_signed_table_at_from_components (x5) - 0073
specialize divisor_signed_table_at_from_components (z) - 0074
apply divisor_signed_table_at_from_components - 0075
refl - 0076
exact hp_witness_witness_left - 0077
exact hn_witness_witness_left - 0078
exists x4 - 0079
exists x5 - 0080
split - 0081
exact hd_witness_witness - 0082
apply add_comm