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 l F o s. (exists dst_positive_code_exists_input dst_positive_scale_exists_input dst_negative_code_exists_input dst_negative_scale_exists_input. (((F) = (((((dst_positive_code_exists_input) + (dst_positive_scale_exists_input)) * S ((dst_positive_code_exists_input) + (dst_positive_scale_exists_input)) + ((dst_positive_scale_exists_input) + (dst_positive_scale_exists_input))) + (((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) * S ((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) + ((dst_negative_scale_exists_input) + (dst_negative_scale_exists_input)))) * S ((((dst_positive_code_exists_input) + (dst_positive_scale_exists_input)) * S ((dst_positive_code_exists_input) + (dst_positive_scale_exists_input)) + ((dst_positive_scale_exists_input) + (dst_positive_scale_exists_input))) + (((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) * S ((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) + ((dst_negative_scale_exists_input) + (dst_negative_scale_exists_input)))) + ((((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) * S ((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) + ((dst_negative_scale_exists_input) + (dst_negative_scale_exists_input))) + (((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) * S ((dst_negative_code_exists_input) + (dst_negative_scale_exists_input)) + ((dst_negative_scale_exists_input) + (dst_negative_scale_exists_input)))))) /\ (forall dst_index_exists_input. (exists pvs_le_gap_exists_inputdomain. pvs_le_gap_exists_inputdomain + (dst_index_exists_input) = (0)) -> exists dst_positive_exists_input dst_negative_exists_input dst_value_exists_input. ((((exists ff_h_pvs_exists_inputentrypositive. ff_h_pvs_exists_inputentrypositive + S (dst_positive_exists_input) = S ((S (dst_index_exists_input)) * dst_positive_scale_exists_input)) /\ exists ff_q_pvs_exists_inputentrypositive. dst_positive_code_exists_input = ff_q_pvs_exists_inputentrypositive * S ((S (dst_index_exists_input)) * dst_positive_scale_exists_input) + (dst_positive_exists_input))) /\ (((((exists ff_h_pvs_exists_inputentrynegative. ff_h_pvs_exists_inputentrynegative + S (dst_negative_exists_input) = S ((S (dst_index_exists_input)) * dst_negative_scale_exists_input)) /\ exists ff_q_pvs_exists_inputentrynegative. dst_negative_code_exists_input = ff_q_pvs_exists_inputentrynegative * S ((S (dst_index_exists_input)) * dst_negative_scale_exists_input) + (dst_negative_exists_input))) /\ (exists ge_balance_positive_exists_inputentryvalue ge_balance_negative_exists_inputentryvalue. (((((dst_value_exists_input) = 2 * (ge_balance_positive_exists_inputentryvalue) /\ (ge_balance_negative_exists_inputentryvalue) = 0) \/ exists ge_signed_half_exists_inputentryvaluedecode. (((dst_value_exists_input) = 2 * ge_signed_half_exists_inputentryvaluedecode + 1 /\ (ge_balance_positive_exists_inputentryvalue) = 0) /\ (ge_balance_negative_exists_inputentryvalue) = S ge_signed_half_exists_inputentryvaluedecode))) /\ ((dst_positive_exists_input) + ge_balance_negative_exists_inputentryvalue = (dst_negative_exists_input) + ge_balance_positive_exists_inputentryvalue))))))))) -> exists G. (((exists dst_positive_code_exists_resultsource_table dst_positive_scale_exists_resultsource_table dst_negative_code_exists_resultsource_table dst_negative_scale_exists_resultsource_table. (((F) = (((((dst_positive_code_exists_resultsource_table) + (dst_positive_scale_exists_resultsource_table)) * S ((dst_positive_code_exists_resultsource_table) + (dst_positive_scale_exists_resultsource_table)) + ((dst_positive_scale_exists_resultsource_table) + (dst_positive_scale_exists_resultsource_table))) + (((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) * S ((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) + ((dst_negative_scale_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)))) * S ((((dst_positive_code_exists_resultsource_table) + (dst_positive_scale_exists_resultsource_table)) * S ((dst_positive_code_exists_resultsource_table) + (dst_positive_scale_exists_resultsource_table)) + ((dst_positive_scale_exists_resultsource_table) + (dst_positive_scale_exists_resultsource_table))) + (((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) * S ((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) + ((dst_negative_scale_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)))) + ((((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) * S ((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) + ((dst_negative_scale_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table))) + (((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) * S ((dst_negative_code_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)) + ((dst_negative_scale_exists_resultsource_table) + (dst_negative_scale_exists_resultsource_table)))))) /\ (forall dst_index_exists_resultsource_table. (exists pvs_le_gap_exists_resultsource_tabledomain. pvs_le_gap_exists_resultsource_tabledomain + (dst_index_exists_resultsource_table) = (0)) -> exists dst_positive_exists_resultsource_table dst_negative_exists_resultsource_table dst_value_exists_resultsource_table. ((((exists ff_h_pvs_exists_resultsource_tableentrypositive. ff_h_pvs_exists_resultsource_tableentrypositive + S (dst_positive_exists_resultsource_table) = S ((S (dst_index_exists_resultsource_table)) * dst_positive_scale_exists_resultsource_table)) /\ exists ff_q_pvs_exists_resultsource_tableentrypositive. dst_positive_code_exists_resultsource_table = ff_q_pvs_exists_resultsource_tableentrypositive * S ((S (dst_index_exists_resultsource_table)) * dst_positive_scale_exists_resultsource_table) + (dst_positive_exists_resultsource_table))) /\ (((((exists ff_h_pvs_exists_resultsource_tableentrynegative. ff_h_pvs_exists_resultsource_tableentrynegative + S (dst_negative_exists_resultsource_table) = S ((S (dst_index_exists_resultsource_table)) * dst_negative_scale_exists_resultsource_table)) /\ exists ff_q_pvs_exists_resultsource_tableentrynegative. dst_negative_code_exists_resultsource_table = ff_q_pvs_exists_resultsource_tableentrynegative * S ((S (dst_index_exists_resultsource_table)) * dst_negative_scale_exists_resultsource_table) + (dst_negative_exists_resultsource_table))) /\ (exists ge_balance_positive_exists_resultsource_tableentryvalue ge_balance_negative_exists_resultsource_tableentryvalue. (((((dst_value_exists_resultsource_table) = 2 * (ge_balance_positive_exists_resultsource_tableentryvalue) /\ (ge_balance_negative_exists_resultsource_tableentryvalue) = 0) \/ exists ge_signed_half_exists_resultsource_tableentryvaluedecode. (((dst_value_exists_resultsource_table) = 2 * ge_signed_half_exists_resultsource_tableentryvaluedecode + 1 /\ (ge_balance_positive_exists_resultsource_tableentryvalue) = 0) /\ (ge_balance_negative_exists_resultsource_tableentryvalue) = S ge_signed_half_exists_resultsource_tableentryvaluedecode))) /\ ((dst_positive_exists_resultsource_table) + ge_balance_negative_exists_resultsource_tableentryvalue = (dst_negative_exists_resultsource_table) + ge_balance_positive_exists_resultsource_tableentryvalue))))))))) /\ (((exists dst_positive_code_exists_resultoutput_table dst_positive_scale_exists_resultoutput_table dst_negative_code_exists_resultoutput_table dst_negative_scale_exists_resultoutput_table. (((G) = (((((dst_positive_code_exists_resultoutput_table) + (dst_positive_scale_exists_resultoutput_table)) * S ((dst_positive_code_exists_resultoutput_table) + (dst_positive_scale_exists_resultoutput_table)) + ((dst_positive_scale_exists_resultoutput_table) + (dst_positive_scale_exists_resultoutput_table))) + (((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) * S ((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) + ((dst_negative_scale_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)))) * S ((((dst_positive_code_exists_resultoutput_table) + (dst_positive_scale_exists_resultoutput_table)) * S ((dst_positive_code_exists_resultoutput_table) + (dst_positive_scale_exists_resultoutput_table)) + ((dst_positive_scale_exists_resultoutput_table) + (dst_positive_scale_exists_resultoutput_table))) + (((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) * S ((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) + ((dst_negative_scale_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)))) + ((((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) * S ((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) + ((dst_negative_scale_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table))) + (((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) * S ((dst_negative_code_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)) + ((dst_negative_scale_exists_resultoutput_table) + (dst_negative_scale_exists_resultoutput_table)))))) /\ (forall dst_index_exists_resultoutput_table. (exists pvs_le_gap_exists_resultoutput_tabledomain. pvs_le_gap_exists_resultoutput_tabledomain + (dst_index_exists_resultoutput_table) = (l)) -> exists dst_positive_exists_resultoutput_table dst_negative_exists_resultoutput_table dst_value_exists_resultoutput_table. ((((exists ff_h_pvs_exists_resultoutput_tableentrypositive. ff_h_pvs_exists_resultoutput_tableentrypositive + S (dst_positive_exists_resultoutput_table) = S ((S (dst_index_exists_resultoutput_table)) * dst_positive_scale_exists_resultoutput_table)) /\ exists ff_q_pvs_exists_resultoutput_tableentrypositive. dst_positive_code_exists_resultoutput_table = ff_q_pvs_exists_resultoutput_tableentrypositive * S ((S (dst_index_exists_resultoutput_table)) * dst_positive_scale_exists_resultoutput_table) + (dst_positive_exists_resultoutput_table))) /\ (((((exists ff_h_pvs_exists_resultoutput_tableentrynegative. ff_h_pvs_exists_resultoutput_tableentrynegative + S (dst_negative_exists_resultoutput_table) = S ((S (dst_index_exists_resultoutput_table)) * dst_negative_scale_exists_resultoutput_table)) /\ exists ff_q_pvs_exists_resultoutput_tableentrynegative. dst_negative_code_exists_resultoutput_table = ff_q_pvs_exists_resultoutput_tableentrynegative * S ((S (dst_index_exists_resultoutput_table)) * dst_negative_scale_exists_resultoutput_table) + (dst_negative_exists_resultoutput_table))) /\ (exists ge_balance_positive_exists_resultoutput_tableentryvalue ge_balance_negative_exists_resultoutput_tableentryvalue. (((((dst_value_exists_resultoutput_table) = 2 * (ge_balance_positive_exists_resultoutput_tableentryvalue) /\ (ge_balance_negative_exists_resultoutput_tableentryvalue) = 0) \/ exists ge_signed_half_exists_resultoutput_tableentryvaluedecode. (((dst_value_exists_resultoutput_table) = 2 * ge_signed_half_exists_resultoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_exists_resultoutput_tableentryvalue) = 0) /\ (ge_balance_negative_exists_resultoutput_tableentryvalue) = S ge_signed_half_exists_resultoutput_tableentryvaluedecode))) /\ ((dst_positive_exists_resultoutput_table) + ge_balance_negative_exists_resultoutput_tableentryvalue = (dst_negative_exists_resultoutput_table) + ge_balance_positive_exists_resultoutput_tableentryvalue))))))))) /\ (forall srs_index_exists_result. (exists pvs_gap_exists_resultbound. pvs_gap_exists_resultbound + S (srs_index_exists_result) = (l)) -> exists srs_value_exists_result. (((exists dst_positive_code_exists_resultentrysource dst_positive_scale_exists_resultentrysource dst_negative_code_exists_resultentrysource dst_negative_scale_exists_resultentrysource dst_positive_exists_resultentrysource dst_negative_exists_resultentrysource. (((F) = (((((dst_positive_code_exists_resultentrysource) + (dst_positive_scale_exists_resultentrysource)) * S ((dst_positive_code_exists_resultentrysource) + (dst_positive_scale_exists_resultentrysource)) + ((dst_positive_scale_exists_resultentrysource) + (dst_positive_scale_exists_resultentrysource))) + (((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) * S ((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) + ((dst_negative_scale_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)))) * S ((((dst_positive_code_exists_resultentrysource) + (dst_positive_scale_exists_resultentrysource)) * S ((dst_positive_code_exists_resultentrysource) + (dst_positive_scale_exists_resultentrysource)) + ((dst_positive_scale_exists_resultentrysource) + (dst_positive_scale_exists_resultentrysource))) + (((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) * S ((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) + ((dst_negative_scale_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)))) + ((((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) * S ((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) + ((dst_negative_scale_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource))) + (((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) * S ((dst_negative_code_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)) + ((dst_negative_scale_exists_resultentrysource) + (dst_negative_scale_exists_resultentrysource)))))) /\ (((((exists ff_h_pvs_exists_resultentrysourcepositive. ff_h_pvs_exists_resultentrysourcepositive + S (dst_positive_exists_resultentrysource) = S ((S (((o) + ((s) * (srs_index_exists_result))))) * dst_positive_scale_exists_resultentrysource)) /\ exists ff_q_pvs_exists_resultentrysourcepositive. dst_positive_code_exists_resultentrysource = ff_q_pvs_exists_resultentrysourcepositive * S ((S (((o) + ((s) * (srs_index_exists_result))))) * dst_positive_scale_exists_resultentrysource) + (dst_positive_exists_resultentrysource))) /\ (((((exists ff_h_pvs_exists_resultentrysourcenegative. ff_h_pvs_exists_resultentrysourcenegative + S (dst_negative_exists_resultentrysource) = S ((S (((o) + ((s) * (srs_index_exists_result))))) * dst_negative_scale_exists_resultentrysource)) /\ exists ff_q_pvs_exists_resultentrysourcenegative. dst_negative_code_exists_resultentrysource = ff_q_pvs_exists_resultentrysourcenegative * S ((S (((o) + ((s) * (srs_index_exists_result))))) * dst_negative_scale_exists_resultentrysource) + (dst_negative_exists_resultentrysource))) /\ (exists ge_balance_positive_exists_resultentrysourcevalue ge_balance_negative_exists_resultentrysourcevalue. (((((srs_value_exists_result) = 2 * (ge_balance_positive_exists_resultentrysourcevalue) /\ (ge_balance_negative_exists_resultentrysourcevalue) = 0) \/ exists ge_signed_half_exists_resultentrysourcevaluedecode. (((srs_value_exists_result) = 2 * ge_signed_half_exists_resultentrysourcevaluedecode + 1 /\ (ge_balance_positive_exists_resultentrysourcevalue) = 0) /\ (ge_balance_negative_exists_resultentrysourcevalue) = S ge_signed_half_exists_resultentrysourcevaluedecode))) /\ ((dst_positive_exists_resultentrysource) + ge_balance_negative_exists_resultentrysourcevalue = (dst_negative_exists_resultentrysource) + ge_balance_positive_exists_resultentrysourcevalue))))))))) /\ (exists dst_positive_code_exists_resultentryoutput dst_positive_scale_exists_resultentryoutput dst_negative_code_exists_resultentryoutput dst_negative_scale_exists_resultentryoutput dst_positive_exists_resultentryoutput dst_negative_exists_resultentryoutput. (((G) = (((((dst_positive_code_exists_resultentryoutput) + (dst_positive_scale_exists_resultentryoutput)) * S ((dst_positive_code_exists_resultentryoutput) + (dst_positive_scale_exists_resultentryoutput)) + ((dst_positive_scale_exists_resultentryoutput) + (dst_positive_scale_exists_resultentryoutput))) + (((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) * S ((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) + ((dst_negative_scale_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)))) * S ((((dst_positive_code_exists_resultentryoutput) + (dst_positive_scale_exists_resultentryoutput)) * S ((dst_positive_code_exists_resultentryoutput) + (dst_positive_scale_exists_resultentryoutput)) + ((dst_positive_scale_exists_resultentryoutput) + (dst_positive_scale_exists_resultentryoutput))) + (((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) * S ((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) + ((dst_negative_scale_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)))) + ((((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) * S ((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) + ((dst_negative_scale_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput))) + (((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) * S ((dst_negative_code_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)) + ((dst_negative_scale_exists_resultentryoutput) + (dst_negative_scale_exists_resultentryoutput)))))) /\ (((((exists ff_h_pvs_exists_resultentryoutputpositive. ff_h_pvs_exists_resultentryoutputpositive + S (dst_positive_exists_resultentryoutput) = S ((S (srs_index_exists_result)) * dst_positive_scale_exists_resultentryoutput)) /\ exists ff_q_pvs_exists_resultentryoutputpositive. dst_positive_code_exists_resultentryoutput = ff_q_pvs_exists_resultentryoutputpositive * S ((S (srs_index_exists_result)) * dst_positive_scale_exists_resultentryoutput) + (dst_positive_exists_resultentryoutput))) /\ (((((exists ff_h_pvs_exists_resultentryoutputnegative. ff_h_pvs_exists_resultentryoutputnegative + S (dst_negative_exists_resultentryoutput) = S ((S (srs_index_exists_result)) * dst_negative_scale_exists_resultentryoutput)) /\ exists ff_q_pvs_exists_resultentryoutputnegative. dst_negative_code_exists_resultentryoutput = ff_q_pvs_exists_resultentryoutputnegative * S ((S (srs_index_exists_result)) * dst_negative_scale_exists_resultentryoutput) + (dst_negative_exists_resultentryoutput))) /\ (exists ge_balance_positive_exists_resultentryoutputvalue ge_balance_negative_exists_resultentryoutputvalue. (((((srs_value_exists_result) = 2 * (ge_balance_positive_exists_resultentryoutputvalue) /\ (ge_balance_negative_exists_resultentryoutputvalue) = 0) \/ exists ge_signed_half_exists_resultentryoutputvaluedecode. (((srs_value_exists_result) = 2 * ge_signed_half_exists_resultentryoutputvaluedecode + 1 /\ (ge_balance_positive_exists_resultentryoutputvalue) = 0) /\ (ge_balance_negative_exists_resultentryoutputvalue) = S ge_signed_half_exists_resultentryoutputvaluedecode))) /\ ((dst_positive_exists_resultentryoutput) + ge_balance_negative_exists_resultentryoutputvalue = (dst_negative_exists_resultentryoutput) + ge_balance_positive_exists_resultentryoutputvalue))))))))))))))))Constructive proof overview
Generated structural guide
Ordinary induction constructs the affine output by actual two-beta extension, including zero length and zero stride.
The unchanged tactic script uses 5 declared prerequisites and contains 64 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
RS0003 signed_rectangular_slice_empty divisor_signed_table_from_components Alpha theorem; checked-use authorized signed_table_lookup_any Alpha theorem; checked-use authorized arithmetic_signed_table_extend_at Alpha theorem; checked-use authorized RS0005 signed_rectangular_slice_extendDirect 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 (2)
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_rectangular_slice_empty (F) - L8
specialize signed_rectangular_slice_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
specialize signed_rectangular_slice_empty (o) - L10
specialize signed_rectangular_slice_empty (s) - L11
apply signed_rectangular_slice_empty - L12
exact hF - 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–30
08Separate the logical casesL31–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L31
cases hp
09Establish hvL32–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply signed table lookup any.
10Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
cases hv
11Establish heL39–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply arithmetic signed table extend at.
- L39
have he : ∃ H. ArithExtend(x,H,l,x1)Definitions: ArithExtend - L40
specialize arithmetic_signed_table_extend_at (l) - L41
specialize arithmetic_signed_table_extend_at (x) - L42
specialize arithmetic_signed_table_extend_at (l) - L43
specialize arithmetic_signed_table_extend_at (x1) - L44
apply arithmetic_signed_table_extend_at
12Separate the logical casesL45–46
13Use earlier factsL47–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L47
exact hp_witness_right_left
14Separate the logical casesL48–50
15Construct an explicit witnessL51–51
Supply the displayed value, then prove that it has the required property.
- L51
exists x2
16Use earlier factsL52–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L52
specialize signed_rectangular_slice_extend (F) - L53
specialize signed_rectangular_slice_extend (x) - L54
specialize signed_rectangular_slice_extend (x2) - L55
specialize signed_rectangular_slice_extend (o) - L56
specialize signed_rectangular_slice_extend (s) - L57
specialize signed_rectangular_slice_extend (l) - L58
specialize signed_rectangular_slice_extend (x1) - L59
apply signed_rectangular_slice_extend - L60
exact hp_witness - L61
exact he_witness_left
Original exact command ledger · 64 lines
- 0001
induction l - 0002
intro F - 0003
intro o - 0004
intro s - 0005
intro hF - 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_rectangular_slice_empty (F) - 0008
specialize signed_rectangular_slice_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
specialize signed_rectangular_slice_empty (o) - 0010
specialize signed_rectangular_slice_empty (s) - 0011
apply signed_rectangular_slice_empty - 0012
exact hF - 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 o - 0023
intro s - 0024
intro hF - 0025
have hp : exists G. (((exists dst_positive_code_exists_prefixsource_table dst_positive_scale_exists_prefixsource_table dst_negative_code_exists_prefixsource_table dst_negative_scale_exists_prefixsource_table. (((F) = (((((dst_positive_code_exists_prefixsource_table) + (dst_positive_scale_exists_prefixsource_table)) * S ((dst_positive_code_exists_prefixsource_table) + (dst_positive_scale_exists_prefixsource_table)) + ((dst_positive_scale_exists_prefixsource_table) + (dst_positive_scale_exists_prefixsource_table))) + (((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) * S ((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) + ((dst_negative_scale_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)))) * S ((((dst_positive_code_exists_prefixsource_table) + (dst_positive_scale_exists_prefixsource_table)) * S ((dst_positive_code_exists_prefixsource_table) + (dst_positive_scale_exists_prefixsource_table)) + ((dst_positive_scale_exists_prefixsource_table) + (dst_positive_scale_exists_prefixsource_table))) + (((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) * S ((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) + ((dst_negative_scale_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)))) + ((((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) * S ((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) + ((dst_negative_scale_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table))) + (((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) * S ((dst_negative_code_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)) + ((dst_negative_scale_exists_prefixsource_table) + (dst_negative_scale_exists_prefixsource_table)))))) /\ (forall dst_index_exists_prefixsource_table. (exists pvs_le_gap_exists_prefixsource_tabledomain. pvs_le_gap_exists_prefixsource_tabledomain + (dst_index_exists_prefixsource_table) = (0)) -> exists dst_positive_exists_prefixsource_table dst_negative_exists_prefixsource_table dst_value_exists_prefixsource_table. ((((exists ff_h_pvs_exists_prefixsource_tableentrypositive. ff_h_pvs_exists_prefixsource_tableentrypositive + S (dst_positive_exists_prefixsource_table) = S ((S (dst_index_exists_prefixsource_table)) * dst_positive_scale_exists_prefixsource_table)) /\ exists ff_q_pvs_exists_prefixsource_tableentrypositive. dst_positive_code_exists_prefixsource_table = ff_q_pvs_exists_prefixsource_tableentrypositive * S ((S (dst_index_exists_prefixsource_table)) * dst_positive_scale_exists_prefixsource_table) + (dst_positive_exists_prefixsource_table))) /\ (((((exists ff_h_pvs_exists_prefixsource_tableentrynegative. ff_h_pvs_exists_prefixsource_tableentrynegative + S (dst_negative_exists_prefixsource_table) = S ((S (dst_index_exists_prefixsource_table)) * dst_negative_scale_exists_prefixsource_table)) /\ exists ff_q_pvs_exists_prefixsource_tableentrynegative. dst_negative_code_exists_prefixsource_table = ff_q_pvs_exists_prefixsource_tableentrynegative * S ((S (dst_index_exists_prefixsource_table)) * dst_negative_scale_exists_prefixsource_table) + (dst_negative_exists_prefixsource_table))) /\ (exists ge_balance_positive_exists_prefixsource_tableentryvalue ge_balance_negative_exists_prefixsource_tableentryvalue. (((((dst_value_exists_prefixsource_table) = 2 * (ge_balance_positive_exists_prefixsource_tableentryvalue) /\ (ge_balance_negative_exists_prefixsource_tableentryvalue) = 0) \/ exists ge_signed_half_exists_prefixsource_tableentryvaluedecode. (((dst_value_exists_prefixsource_table) = 2 * ge_signed_half_exists_prefixsource_tableentryvaluedecode + 1 /\ (ge_balance_positive_exists_prefixsource_tableentryvalue) = 0) /\ (ge_balance_negative_exists_prefixsource_tableentryvalue) = S ge_signed_half_exists_prefixsource_tableentryvaluedecode))) /\ ((dst_positive_exists_prefixsource_table) + ge_balance_negative_exists_prefixsource_tableentryvalue = (dst_negative_exists_prefixsource_table) + ge_balance_positive_exists_prefixsource_tableentryvalue))))))))) /\ (((exists dst_positive_code_exists_prefixoutput_table dst_positive_scale_exists_prefixoutput_table dst_negative_code_exists_prefixoutput_table dst_negative_scale_exists_prefixoutput_table. (((G) = (((((dst_positive_code_exists_prefixoutput_table) + (dst_positive_scale_exists_prefixoutput_table)) * S ((dst_positive_code_exists_prefixoutput_table) + (dst_positive_scale_exists_prefixoutput_table)) + ((dst_positive_scale_exists_prefixoutput_table) + (dst_positive_scale_exists_prefixoutput_table))) + (((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) * S ((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) + ((dst_negative_scale_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)))) * S ((((dst_positive_code_exists_prefixoutput_table) + (dst_positive_scale_exists_prefixoutput_table)) * S ((dst_positive_code_exists_prefixoutput_table) + (dst_positive_scale_exists_prefixoutput_table)) + ((dst_positive_scale_exists_prefixoutput_table) + (dst_positive_scale_exists_prefixoutput_table))) + (((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) * S ((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) + ((dst_negative_scale_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)))) + ((((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) * S ((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) + ((dst_negative_scale_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table))) + (((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) * S ((dst_negative_code_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)) + ((dst_negative_scale_exists_prefixoutput_table) + (dst_negative_scale_exists_prefixoutput_table)))))) /\ (forall dst_index_exists_prefixoutput_table. (exists pvs_le_gap_exists_prefixoutput_tabledomain. pvs_le_gap_exists_prefixoutput_tabledomain + (dst_index_exists_prefixoutput_table) = (l)) -> exists dst_positive_exists_prefixoutput_table dst_negative_exists_prefixoutput_table dst_value_exists_prefixoutput_table. ((((exists ff_h_pvs_exists_prefixoutput_tableentrypositive. ff_h_pvs_exists_prefixoutput_tableentrypositive + S (dst_positive_exists_prefixoutput_table) = S ((S (dst_index_exists_prefixoutput_table)) * dst_positive_scale_exists_prefixoutput_table)) /\ exists ff_q_pvs_exists_prefixoutput_tableentrypositive. dst_positive_code_exists_prefixoutput_table = ff_q_pvs_exists_prefixoutput_tableentrypositive * S ((S (dst_index_exists_prefixoutput_table)) * dst_positive_scale_exists_prefixoutput_table) + (dst_positive_exists_prefixoutput_table))) /\ (((((exists ff_h_pvs_exists_prefixoutput_tableentrynegative. ff_h_pvs_exists_prefixoutput_tableentrynegative + S (dst_negative_exists_prefixoutput_table) = S ((S (dst_index_exists_prefixoutput_table)) * dst_negative_scale_exists_prefixoutput_table)) /\ exists ff_q_pvs_exists_prefixoutput_tableentrynegative. dst_negative_code_exists_prefixoutput_table = ff_q_pvs_exists_prefixoutput_tableentrynegative * S ((S (dst_index_exists_prefixoutput_table)) * dst_negative_scale_exists_prefixoutput_table) + (dst_negative_exists_prefixoutput_table))) /\ (exists ge_balance_positive_exists_prefixoutput_tableentryvalue ge_balance_negative_exists_prefixoutput_tableentryvalue. (((((dst_value_exists_prefixoutput_table) = 2 * (ge_balance_positive_exists_prefixoutput_tableentryvalue) /\ (ge_balance_negative_exists_prefixoutput_tableentryvalue) = 0) \/ exists ge_signed_half_exists_prefixoutput_tableentryvaluedecode. (((dst_value_exists_prefixoutput_table) = 2 * ge_signed_half_exists_prefixoutput_tableentryvaluedecode + 1 /\ (ge_balance_positive_exists_prefixoutput_tableentryvalue) = 0) /\ (ge_balance_negative_exists_prefixoutput_tableentryvalue) = S ge_signed_half_exists_prefixoutput_tableentryvaluedecode))) /\ ((dst_positive_exists_prefixoutput_table) + ge_balance_negative_exists_prefixoutput_tableentryvalue = (dst_negative_exists_prefixoutput_table) + ge_balance_positive_exists_prefixoutput_tableentryvalue))))))))) /\ (forall srs_index_exists_prefix. (exists pvs_gap_exists_prefixbound. pvs_gap_exists_prefixbound + S (srs_index_exists_prefix) = (l)) -> exists srs_value_exists_prefix. (((exists dst_positive_code_exists_prefixentrysource dst_positive_scale_exists_prefixentrysource dst_negative_code_exists_prefixentrysource dst_negative_scale_exists_prefixentrysource dst_positive_exists_prefixentrysource dst_negative_exists_prefixentrysource. (((F) = (((((dst_positive_code_exists_prefixentrysource) + (dst_positive_scale_exists_prefixentrysource)) * S ((dst_positive_code_exists_prefixentrysource) + (dst_positive_scale_exists_prefixentrysource)) + ((dst_positive_scale_exists_prefixentrysource) + (dst_positive_scale_exists_prefixentrysource))) + (((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) * S ((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) + ((dst_negative_scale_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)))) * S ((((dst_positive_code_exists_prefixentrysource) + (dst_positive_scale_exists_prefixentrysource)) * S ((dst_positive_code_exists_prefixentrysource) + (dst_positive_scale_exists_prefixentrysource)) + ((dst_positive_scale_exists_prefixentrysource) + (dst_positive_scale_exists_prefixentrysource))) + (((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) * S ((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) + ((dst_negative_scale_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)))) + ((((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) * S ((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) + ((dst_negative_scale_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource))) + (((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) * S ((dst_negative_code_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)) + ((dst_negative_scale_exists_prefixentrysource) + (dst_negative_scale_exists_prefixentrysource)))))) /\ (((((exists ff_h_pvs_exists_prefixentrysourcepositive. ff_h_pvs_exists_prefixentrysourcepositive + S (dst_positive_exists_prefixentrysource) = S ((S (((o) + ((s) * (srs_index_exists_prefix))))) * dst_positive_scale_exists_prefixentrysource)) /\ exists ff_q_pvs_exists_prefixentrysourcepositive. dst_positive_code_exists_prefixentrysource = ff_q_pvs_exists_prefixentrysourcepositive * S ((S (((o) + ((s) * (srs_index_exists_prefix))))) * dst_positive_scale_exists_prefixentrysource) + (dst_positive_exists_prefixentrysource))) /\ (((((exists ff_h_pvs_exists_prefixentrysourcenegative. ff_h_pvs_exists_prefixentrysourcenegative + S (dst_negative_exists_prefixentrysource) = S ((S (((o) + ((s) * (srs_index_exists_prefix))))) * dst_negative_scale_exists_prefixentrysource)) /\ exists ff_q_pvs_exists_prefixentrysourcenegative. dst_negative_code_exists_prefixentrysource = ff_q_pvs_exists_prefixentrysourcenegative * S ((S (((o) + ((s) * (srs_index_exists_prefix))))) * dst_negative_scale_exists_prefixentrysource) + (dst_negative_exists_prefixentrysource))) /\ (exists ge_balance_positive_exists_prefixentrysourcevalue ge_balance_negative_exists_prefixentrysourcevalue. (((((srs_value_exists_prefix) = 2 * (ge_balance_positive_exists_prefixentrysourcevalue) /\ (ge_balance_negative_exists_prefixentrysourcevalue) = 0) \/ exists ge_signed_half_exists_prefixentrysourcevaluedecode. (((srs_value_exists_prefix) = 2 * ge_signed_half_exists_prefixentrysourcevaluedecode + 1 /\ (ge_balance_positive_exists_prefixentrysourcevalue) = 0) /\ (ge_balance_negative_exists_prefixentrysourcevalue) = S ge_signed_half_exists_prefixentrysourcevaluedecode))) /\ ((dst_positive_exists_prefixentrysource) + ge_balance_negative_exists_prefixentrysourcevalue = (dst_negative_exists_prefixentrysource) + ge_balance_positive_exists_prefixentrysourcevalue))))))))) /\ (exists dst_positive_code_exists_prefixentryoutput dst_positive_scale_exists_prefixentryoutput dst_negative_code_exists_prefixentryoutput dst_negative_scale_exists_prefixentryoutput dst_positive_exists_prefixentryoutput dst_negative_exists_prefixentryoutput. (((G) = (((((dst_positive_code_exists_prefixentryoutput) + (dst_positive_scale_exists_prefixentryoutput)) * S ((dst_positive_code_exists_prefixentryoutput) + (dst_positive_scale_exists_prefixentryoutput)) + ((dst_positive_scale_exists_prefixentryoutput) + (dst_positive_scale_exists_prefixentryoutput))) + (((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) * S ((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) + ((dst_negative_scale_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)))) * S ((((dst_positive_code_exists_prefixentryoutput) + (dst_positive_scale_exists_prefixentryoutput)) * S ((dst_positive_code_exists_prefixentryoutput) + (dst_positive_scale_exists_prefixentryoutput)) + ((dst_positive_scale_exists_prefixentryoutput) + (dst_positive_scale_exists_prefixentryoutput))) + (((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) * S ((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) + ((dst_negative_scale_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)))) + ((((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) * S ((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) + ((dst_negative_scale_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput))) + (((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) * S ((dst_negative_code_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)) + ((dst_negative_scale_exists_prefixentryoutput) + (dst_negative_scale_exists_prefixentryoutput)))))) /\ (((((exists ff_h_pvs_exists_prefixentryoutputpositive. ff_h_pvs_exists_prefixentryoutputpositive + S (dst_positive_exists_prefixentryoutput) = S ((S (srs_index_exists_prefix)) * dst_positive_scale_exists_prefixentryoutput)) /\ exists ff_q_pvs_exists_prefixentryoutputpositive. dst_positive_code_exists_prefixentryoutput = ff_q_pvs_exists_prefixentryoutputpositive * S ((S (srs_index_exists_prefix)) * dst_positive_scale_exists_prefixentryoutput) + (dst_positive_exists_prefixentryoutput))) /\ (((((exists ff_h_pvs_exists_prefixentryoutputnegative. ff_h_pvs_exists_prefixentryoutputnegative + S (dst_negative_exists_prefixentryoutput) = S ((S (srs_index_exists_prefix)) * dst_negative_scale_exists_prefixentryoutput)) /\ exists ff_q_pvs_exists_prefixentryoutputnegative. dst_negative_code_exists_prefixentryoutput = ff_q_pvs_exists_prefixentryoutputnegative * S ((S (srs_index_exists_prefix)) * dst_negative_scale_exists_prefixentryoutput) + (dst_negative_exists_prefixentryoutput))) /\ (exists ge_balance_positive_exists_prefixentryoutputvalue ge_balance_negative_exists_prefixentryoutputvalue. (((((srs_value_exists_prefix) = 2 * (ge_balance_positive_exists_prefixentryoutputvalue) /\ (ge_balance_negative_exists_prefixentryoutputvalue) = 0) \/ exists ge_signed_half_exists_prefixentryoutputvaluedecode. (((srs_value_exists_prefix) = 2 * ge_signed_half_exists_prefixentryoutputvaluedecode + 1 /\ (ge_balance_positive_exists_prefixentryoutputvalue) = 0) /\ (ge_balance_negative_exists_prefixentryoutputvalue) = S ge_signed_half_exists_prefixentryoutputvaluedecode))) /\ ((dst_positive_exists_prefixentryoutput) + ge_balance_negative_exists_prefixentryoutputvalue = (dst_negative_exists_prefixentryoutput) + ge_balance_positive_exists_prefixentryoutputvalue)))))))))))))))) - 0026
specialize IH (F) - 0027
specialize IH (o) - 0028
specialize IH (s) - 0029
apply IH - 0030
exact hF - 0031
cases hp - 0032
have hv : exists z. (exists dst_positive_code_exists_source dst_positive_scale_exists_source dst_negative_code_exists_source dst_negative_scale_exists_source dst_positive_exists_source dst_negative_exists_source. (((F) = (((((dst_positive_code_exists_source) + (dst_positive_scale_exists_source)) * S ((dst_positive_code_exists_source) + (dst_positive_scale_exists_source)) + ((dst_positive_scale_exists_source) + (dst_positive_scale_exists_source))) + (((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) * S ((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) + ((dst_negative_scale_exists_source) + (dst_negative_scale_exists_source)))) * S ((((dst_positive_code_exists_source) + (dst_positive_scale_exists_source)) * S ((dst_positive_code_exists_source) + (dst_positive_scale_exists_source)) + ((dst_positive_scale_exists_source) + (dst_positive_scale_exists_source))) + (((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) * S ((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) + ((dst_negative_scale_exists_source) + (dst_negative_scale_exists_source)))) + ((((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) * S ((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) + ((dst_negative_scale_exists_source) + (dst_negative_scale_exists_source))) + (((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) * S ((dst_negative_code_exists_source) + (dst_negative_scale_exists_source)) + ((dst_negative_scale_exists_source) + (dst_negative_scale_exists_source)))))) /\ (((((exists ff_h_pvs_exists_sourcepositive. ff_h_pvs_exists_sourcepositive + S (dst_positive_exists_source) = S ((S (((o) + ((s) * (l))))) * dst_positive_scale_exists_source)) /\ exists ff_q_pvs_exists_sourcepositive. dst_positive_code_exists_source = ff_q_pvs_exists_sourcepositive * S ((S (((o) + ((s) * (l))))) * dst_positive_scale_exists_source) + (dst_positive_exists_source))) /\ (((((exists ff_h_pvs_exists_sourcenegative. ff_h_pvs_exists_sourcenegative + S (dst_negative_exists_source) = S ((S (((o) + ((s) * (l))))) * dst_negative_scale_exists_source)) /\ exists ff_q_pvs_exists_sourcenegative. dst_negative_code_exists_source = ff_q_pvs_exists_sourcenegative * S ((S (((o) + ((s) * (l))))) * dst_negative_scale_exists_source) + (dst_negative_exists_source))) /\ (exists ge_balance_positive_exists_sourcevalue ge_balance_negative_exists_sourcevalue. (((((z) = 2 * (ge_balance_positive_exists_sourcevalue) /\ (ge_balance_negative_exists_sourcevalue) = 0) \/ exists ge_signed_half_exists_sourcevaluedecode. (((z) = 2 * ge_signed_half_exists_sourcevaluedecode + 1 /\ (ge_balance_positive_exists_sourcevalue) = 0) /\ (ge_balance_negative_exists_sourcevalue) = S ge_signed_half_exists_sourcevaluedecode))) /\ ((dst_positive_exists_source) + ge_balance_negative_exists_sourcevalue = (dst_negative_exists_source) + ge_balance_positive_exists_sourcevalue))))))))) - 0033
specialize signed_table_lookup_any (0) - 0034
specialize signed_table_lookup_any (F) - 0035
specialize signed_table_lookup_any (((o) + ((s) * (l)))) - 0036
apply signed_table_lookup_any - 0037
exact hF - 0038
cases hv - 0039
have he : exists H. ((exists dst_positive_code_exists_output dst_positive_scale_exists_output dst_negative_code_exists_output dst_negative_scale_exists_output. (((H) = (((((dst_positive_code_exists_output) + (dst_positive_scale_exists_output)) * S ((dst_positive_code_exists_output) + (dst_positive_scale_exists_output)) + ((dst_positive_scale_exists_output) + (dst_positive_scale_exists_output))) + (((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) * S ((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) + ((dst_negative_scale_exists_output) + (dst_negative_scale_exists_output)))) * S ((((dst_positive_code_exists_output) + (dst_positive_scale_exists_output)) * S ((dst_positive_code_exists_output) + (dst_positive_scale_exists_output)) + ((dst_positive_scale_exists_output) + (dst_positive_scale_exists_output))) + (((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) * S ((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) + ((dst_negative_scale_exists_output) + (dst_negative_scale_exists_output)))) + ((((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) * S ((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) + ((dst_negative_scale_exists_output) + (dst_negative_scale_exists_output))) + (((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) * S ((dst_negative_code_exists_output) + (dst_negative_scale_exists_output)) + ((dst_negative_scale_exists_output) + (dst_negative_scale_exists_output)))))) /\ (forall dst_index_exists_output. (exists pvs_le_gap_exists_outputdomain. pvs_le_gap_exists_outputdomain + (dst_index_exists_output) = (l)) -> exists dst_positive_exists_output dst_negative_exists_output dst_value_exists_output. ((((exists ff_h_pvs_exists_outputentrypositive. ff_h_pvs_exists_outputentrypositive + S (dst_positive_exists_output) = S ((S (dst_index_exists_output)) * dst_positive_scale_exists_output)) /\ exists ff_q_pvs_exists_outputentrypositive. dst_positive_code_exists_output = ff_q_pvs_exists_outputentrypositive * S ((S (dst_index_exists_output)) * dst_positive_scale_exists_output) + (dst_positive_exists_output))) /\ (((((exists ff_h_pvs_exists_outputentrynegative. ff_h_pvs_exists_outputentrynegative + S (dst_negative_exists_output) = S ((S (dst_index_exists_output)) * dst_negative_scale_exists_output)) /\ exists ff_q_pvs_exists_outputentrynegative. dst_negative_code_exists_output = ff_q_pvs_exists_outputentrynegative * S ((S (dst_index_exists_output)) * dst_negative_scale_exists_output) + (dst_negative_exists_output))) /\ (exists ge_balance_positive_exists_outputentryvalue ge_balance_negative_exists_outputentryvalue. (((((dst_value_exists_output) = 2 * (ge_balance_positive_exists_outputentryvalue) /\ (ge_balance_negative_exists_outputentryvalue) = 0) \/ exists ge_signed_half_exists_outputentryvaluedecode. (((dst_value_exists_output) = 2 * ge_signed_half_exists_outputentryvaluedecode + 1 /\ (ge_balance_positive_exists_outputentryvalue) = 0) /\ (ge_balance_negative_exists_outputentryvalue) = S ge_signed_half_exists_outputentryvaluedecode))) /\ ((dst_positive_exists_output) + ge_balance_negative_exists_outputentryvalue = (dst_negative_exists_output) + ge_balance_positive_exists_outputentryvalue))))))))) /\ (((forall dst_index_exists_equal dst_first_exists_equal dst_second_exists_equal. (exists pvs_gap_exists_equalbound. pvs_gap_exists_equalbound + S (dst_index_exists_equal) = (l)) -> (exists dst_positive_code_exists_equalfirst dst_positive_scale_exists_equalfirst dst_negative_code_exists_equalfirst dst_negative_scale_exists_equalfirst dst_positive_exists_equalfirst dst_negative_exists_equalfirst. (((x) = (((((dst_positive_code_exists_equalfirst) + (dst_positive_scale_exists_equalfirst)) * S ((dst_positive_code_exists_equalfirst) + (dst_positive_scale_exists_equalfirst)) + ((dst_positive_scale_exists_equalfirst) + (dst_positive_scale_exists_equalfirst))) + (((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) * S ((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) + ((dst_negative_scale_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)))) * S ((((dst_positive_code_exists_equalfirst) + (dst_positive_scale_exists_equalfirst)) * S ((dst_positive_code_exists_equalfirst) + (dst_positive_scale_exists_equalfirst)) + ((dst_positive_scale_exists_equalfirst) + (dst_positive_scale_exists_equalfirst))) + (((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) * S ((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) + ((dst_negative_scale_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)))) + ((((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) * S ((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) + ((dst_negative_scale_exists_equalfirst) + (dst_negative_scale_exists_equalfirst))) + (((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) * S ((dst_negative_code_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)) + ((dst_negative_scale_exists_equalfirst) + (dst_negative_scale_exists_equalfirst)))))) /\ (((((exists ff_h_pvs_exists_equalfirstpositive. ff_h_pvs_exists_equalfirstpositive + S (dst_positive_exists_equalfirst) = S ((S (dst_index_exists_equal)) * dst_positive_scale_exists_equalfirst)) /\ exists ff_q_pvs_exists_equalfirstpositive. dst_positive_code_exists_equalfirst = ff_q_pvs_exists_equalfirstpositive * S ((S (dst_index_exists_equal)) * dst_positive_scale_exists_equalfirst) + (dst_positive_exists_equalfirst))) /\ (((((exists ff_h_pvs_exists_equalfirstnegative. ff_h_pvs_exists_equalfirstnegative + S (dst_negative_exists_equalfirst) = S ((S (dst_index_exists_equal)) * dst_negative_scale_exists_equalfirst)) /\ exists ff_q_pvs_exists_equalfirstnegative. dst_negative_code_exists_equalfirst = ff_q_pvs_exists_equalfirstnegative * S ((S (dst_index_exists_equal)) * dst_negative_scale_exists_equalfirst) + (dst_negative_exists_equalfirst))) /\ (exists ge_balance_positive_exists_equalfirstvalue ge_balance_negative_exists_equalfirstvalue. (((((dst_first_exists_equal) = 2 * (ge_balance_positive_exists_equalfirstvalue) /\ (ge_balance_negative_exists_equalfirstvalue) = 0) \/ exists ge_signed_half_exists_equalfirstvaluedecode. (((dst_first_exists_equal) = 2 * ge_signed_half_exists_equalfirstvaluedecode + 1 /\ (ge_balance_positive_exists_equalfirstvalue) = 0) /\ (ge_balance_negative_exists_equalfirstvalue) = S ge_signed_half_exists_equalfirstvaluedecode))) /\ ((dst_positive_exists_equalfirst) + ge_balance_negative_exists_equalfirstvalue = (dst_negative_exists_equalfirst) + ge_balance_positive_exists_equalfirstvalue))))))))) -> (exists dst_positive_code_exists_equalsecond dst_positive_scale_exists_equalsecond dst_negative_code_exists_equalsecond dst_negative_scale_exists_equalsecond dst_positive_exists_equalsecond dst_negative_exists_equalsecond. (((H) = (((((dst_positive_code_exists_equalsecond) + (dst_positive_scale_exists_equalsecond)) * S ((dst_positive_code_exists_equalsecond) + (dst_positive_scale_exists_equalsecond)) + ((dst_positive_scale_exists_equalsecond) + (dst_positive_scale_exists_equalsecond))) + (((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) * S ((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) + ((dst_negative_scale_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)))) * S ((((dst_positive_code_exists_equalsecond) + (dst_positive_scale_exists_equalsecond)) * S ((dst_positive_code_exists_equalsecond) + (dst_positive_scale_exists_equalsecond)) + ((dst_positive_scale_exists_equalsecond) + (dst_positive_scale_exists_equalsecond))) + (((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) * S ((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) + ((dst_negative_scale_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)))) + ((((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) * S ((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) + ((dst_negative_scale_exists_equalsecond) + (dst_negative_scale_exists_equalsecond))) + (((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) * S ((dst_negative_code_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)) + ((dst_negative_scale_exists_equalsecond) + (dst_negative_scale_exists_equalsecond)))))) /\ (((((exists ff_h_pvs_exists_equalsecondpositive. ff_h_pvs_exists_equalsecondpositive + S (dst_positive_exists_equalsecond) = S ((S (dst_index_exists_equal)) * dst_positive_scale_exists_equalsecond)) /\ exists ff_q_pvs_exists_equalsecondpositive. dst_positive_code_exists_equalsecond = ff_q_pvs_exists_equalsecondpositive * S ((S (dst_index_exists_equal)) * dst_positive_scale_exists_equalsecond) + (dst_positive_exists_equalsecond))) /\ (((((exists ff_h_pvs_exists_equalsecondnegative. ff_h_pvs_exists_equalsecondnegative + S (dst_negative_exists_equalsecond) = S ((S (dst_index_exists_equal)) * dst_negative_scale_exists_equalsecond)) /\ exists ff_q_pvs_exists_equalsecondnegative. dst_negative_code_exists_equalsecond = ff_q_pvs_exists_equalsecondnegative * S ((S (dst_index_exists_equal)) * dst_negative_scale_exists_equalsecond) + (dst_negative_exists_equalsecond))) /\ (exists ge_balance_positive_exists_equalsecondvalue ge_balance_negative_exists_equalsecondvalue. (((((dst_second_exists_equal) = 2 * (ge_balance_positive_exists_equalsecondvalue) /\ (ge_balance_negative_exists_equalsecondvalue) = 0) \/ exists ge_signed_half_exists_equalsecondvaluedecode. (((dst_second_exists_equal) = 2 * ge_signed_half_exists_equalsecondvaluedecode + 1 /\ (ge_balance_positive_exists_equalsecondvalue) = 0) /\ (ge_balance_negative_exists_equalsecondvalue) = S ge_signed_half_exists_equalsecondvaluedecode))) /\ ((dst_positive_exists_equalsecond) + ge_balance_negative_exists_equalsecondvalue = (dst_negative_exists_equalsecond) + ge_balance_positive_exists_equalsecondvalue))))))))) -> dst_first_exists_equal = dst_second_exists_equal) /\ (exists dst_positive_code_exists_last dst_positive_scale_exists_last dst_negative_code_exists_last dst_negative_scale_exists_last dst_positive_exists_last dst_negative_exists_last. (((H) = (((((dst_positive_code_exists_last) + (dst_positive_scale_exists_last)) * S ((dst_positive_code_exists_last) + (dst_positive_scale_exists_last)) + ((dst_positive_scale_exists_last) + (dst_positive_scale_exists_last))) + (((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) * S ((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) + ((dst_negative_scale_exists_last) + (dst_negative_scale_exists_last)))) * S ((((dst_positive_code_exists_last) + (dst_positive_scale_exists_last)) * S ((dst_positive_code_exists_last) + (dst_positive_scale_exists_last)) + ((dst_positive_scale_exists_last) + (dst_positive_scale_exists_last))) + (((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) * S ((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) + ((dst_negative_scale_exists_last) + (dst_negative_scale_exists_last)))) + ((((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) * S ((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) + ((dst_negative_scale_exists_last) + (dst_negative_scale_exists_last))) + (((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) * S ((dst_negative_code_exists_last) + (dst_negative_scale_exists_last)) + ((dst_negative_scale_exists_last) + (dst_negative_scale_exists_last)))))) /\ (((((exists ff_h_pvs_exists_lastpositive. ff_h_pvs_exists_lastpositive + S (dst_positive_exists_last) = S ((S (l)) * dst_positive_scale_exists_last)) /\ exists ff_q_pvs_exists_lastpositive. dst_positive_code_exists_last = ff_q_pvs_exists_lastpositive * S ((S (l)) * dst_positive_scale_exists_last) + (dst_positive_exists_last))) /\ (((((exists ff_h_pvs_exists_lastnegative. ff_h_pvs_exists_lastnegative + S (dst_negative_exists_last) = S ((S (l)) * dst_negative_scale_exists_last)) /\ exists ff_q_pvs_exists_lastnegative. dst_negative_code_exists_last = ff_q_pvs_exists_lastnegative * S ((S (l)) * dst_negative_scale_exists_last) + (dst_negative_exists_last))) /\ (exists ge_balance_positive_exists_lastvalue ge_balance_negative_exists_lastvalue. (((((x1) = 2 * (ge_balance_positive_exists_lastvalue) /\ (ge_balance_negative_exists_lastvalue) = 0) \/ exists ge_signed_half_exists_lastvaluedecode. (((x1) = 2 * ge_signed_half_exists_lastvaluedecode + 1 /\ (ge_balance_positive_exists_lastvalue) = 0) /\ (ge_balance_negative_exists_lastvalue) = S ge_signed_half_exists_lastvaluedecode))) /\ ((dst_positive_exists_last) + ge_balance_negative_exists_lastvalue = (dst_negative_exists_last) + ge_balance_positive_exists_lastvalue)))))))))))) - 0040
specialize arithmetic_signed_table_extend_at (l) - 0041
specialize arithmetic_signed_table_extend_at (x) - 0042
specialize arithmetic_signed_table_extend_at (l) - 0043
specialize arithmetic_signed_table_extend_at (x1) - 0044
apply arithmetic_signed_table_extend_at - 0045
cases hp_witness - 0046
cases hp_witness_right - 0047
exact hp_witness_right_left - 0048
cases he - 0049
cases he_witness - 0050
cases he_witness_right - 0051
exists x2 - 0052
specialize signed_rectangular_slice_extend (F) - 0053
specialize signed_rectangular_slice_extend (x) - 0054
specialize signed_rectangular_slice_extend (x2) - 0055
specialize signed_rectangular_slice_extend (o) - 0056
specialize signed_rectangular_slice_extend (s) - 0057
specialize signed_rectangular_slice_extend (l) - 0058
specialize signed_rectangular_slice_extend (x1) - 0059
apply signed_rectangular_slice_extend - 0060
exact hp_witness - 0061
exact he_witness_left - 0062
exact he_witness_right_left - 0063
exact hv_witness - 0064
exact he_witness_right_right