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 p ab ac AB AC bb bc d N a b c t r. (forall mdr_i_pfp_tri_append_prefix mdr_a_pfp_tri_append_prefix. (exists mdr_gap_pfp_tri_append_prefixb. mdr_gap_pfp_tri_append_prefixb + S (mdr_i_pfp_tri_append_prefix) = (N)) -> (((exists ff_h_mdr_pfp_tri_append_prefixo. ff_h_mdr_pfp_tri_append_prefixo + S (mdr_a_pfp_tri_append_prefix) = S ((S (mdr_i_pfp_tri_append_prefix)) * ac)) /\ exists ff_q_mdr_pfp_tri_append_prefixo. ab = ff_q_mdr_pfp_tri_append_prefixo * S ((S (mdr_i_pfp_tri_append_prefix)) * ac) + (mdr_a_pfp_tri_append_prefix))) -> (((exists ff_h_mdr_pfp_tri_append_prefixn. ff_h_mdr_pfp_tri_append_prefixn + S (mdr_a_pfp_tri_append_prefix) = S ((S (mdr_i_pfp_tri_append_prefix)) * AC)) /\ exists ff_q_mdr_pfp_tri_append_prefixn. AB = ff_q_mdr_pfp_tri_append_prefixn * S ((S (mdr_i_pfp_tri_append_prefix)) * AC) + (mdr_a_pfp_tri_append_prefix)))) -> (((exists ff_h_pfp_tri_append_actual_entry. ff_h_pfp_tri_append_actual_entry + S (a) = S ((S (N)) * AC)) /\ exists ff_q_pfp_tri_append_actual_entry. AB = ff_q_pfp_tri_append_actual_entry * S ((S (N)) * AC) + (a))) -> (((exists ff_h_pfp_tri_append_actual_head. ff_h_pfp_tri_append_actual_head + S (b) = S ((S (0)) * bc)) /\ exists ff_q_pfp_tri_append_actual_head. bb = ff_q_pfp_tri_append_actual_head * S ((S (0)) * bc) + (b))) -> (exists pfc_terms_code_tri_append_previous_coefficient pfc_terms_scale_tri_append_previous_coefficient pfc_natural_sum_tri_append_previous_coefficient. ((forall pfc_index_tri_append_previous_coefficientdiagonal. (exists pfa_gap_tri_append_previous_coefficientdiagonalbound. pfa_gap_tri_append_previous_coefficientdiagonalbound + S (pfc_index_tri_append_previous_coefficientdiagonal) = (S (N))) -> exists pfc_value_tri_append_previous_coefficientdiagonal. ((((exists ff_h_pfp_tri_append_previous_coefficientdiagonalentry. ff_h_pfp_tri_append_previous_coefficientdiagonalentry + S (pfc_value_tri_append_previous_coefficientdiagonal) = S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * pfc_terms_scale_tri_append_previous_coefficient)) /\ exists ff_q_pfp_tri_append_previous_coefficientdiagonalentry. pfc_terms_code_tri_append_previous_coefficient = ff_q_pfp_tri_append_previous_coefficientdiagonalentry * S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * pfc_terms_scale_tri_append_previous_coefficient) + (pfc_value_tri_append_previous_coefficientdiagonal))) /\ ((exists pfc_complement_tri_append_previous_coefficientdiagonalterm pfc_left_tri_append_previous_coefficientdiagonalterm pfc_right_tri_append_previous_coefficientdiagonalterm. (((pfc_index_tri_append_previous_coefficientdiagonal)+pfc_complement_tri_append_previous_coefficientdiagonalterm=(N)) /\ ((((((exists pfa_gap_tri_append_previous_coefficientdiagonaltermleftinside. pfa_gap_tri_append_previous_coefficientdiagonaltermleftinside + S (pfc_index_tri_append_previous_coefficientdiagonal) = (N)) /\ ((((exists ff_h_pfp_tri_append_previous_coefficientdiagonaltermleftentry. ff_h_pfp_tri_append_previous_coefficientdiagonaltermleftentry + S (pfc_left_tri_append_previous_coefficientdiagonalterm) = S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * ac)) /\ exists ff_q_pfp_tri_append_previous_coefficientdiagonaltermleftentry. ab = ff_q_pfp_tri_append_previous_coefficientdiagonaltermleftentry * S ((S (pfc_index_tri_append_previous_coefficientdiagonal)) * ac) + (pfc_left_tri_append_previous_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_previous_coefficientdiagonaltermleftoutside. pfc_gap_tri_append_previous_coefficientdiagonaltermleftoutside+(N)=(pfc_index_tri_append_previous_coefficientdiagonal)) /\ (((pfc_left_tri_append_previous_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_append_previous_coefficientdiagonaltermrightinside. pfa_gap_tri_append_previous_coefficientdiagonaltermrightinside + S (pfc_complement_tri_append_previous_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_tri_append_previous_coefficientdiagonaltermrightentry. ff_h_pfp_tri_append_previous_coefficientdiagonaltermrightentry + S (pfc_right_tri_append_previous_coefficientdiagonalterm) = S ((S (pfc_complement_tri_append_previous_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_append_previous_coefficientdiagonaltermrightentry. bb = ff_q_pfp_tri_append_previous_coefficientdiagonaltermrightentry * S ((S (pfc_complement_tri_append_previous_coefficientdiagonalterm)) * bc) + (pfc_right_tri_append_previous_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_previous_coefficientdiagonaltermrightoutside. pfc_gap_tri_append_previous_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_tri_append_previous_coefficientdiagonalterm)) /\ (((pfc_right_tri_append_previous_coefficientdiagonalterm)=0))))) /\ (((pfc_value_tri_append_previous_coefficientdiagonal)=pfc_left_tri_append_previous_coefficientdiagonalterm*pfc_right_tri_append_previous_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_append_previous_coefficientsum fs_v_pfc_tri_append_previous_coefficientsum. ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_start. fs_h_pfc_tri_append_previous_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_start. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_tri_append_previous_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_terminal. fs_h_pfc_tri_append_previous_coefficientsum_body_terminal + S (pfc_natural_sum_tri_append_previous_coefficient) = S ((S (S (N))) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_terminal. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_terminal * S ((S (S (N))) * fs_v_pfc_tri_append_previous_coefficientsum) + (pfc_natural_sum_tri_append_previous_coefficient))) /\ forall fs_i_pfc_tri_append_previous_coefficientsum_body_steps. (exists fs_lt_pfc_tri_append_previous_coefficientsum_body_steps_bound. fs_lt_pfc_tri_append_previous_coefficientsum_body_steps_bound + S fs_i_pfc_tri_append_previous_coefficientsum_body_steps = S (N)) -> exists fs_a_pfc_tri_append_previous_coefficientsum_body_steps fs_r_pfc_tri_append_previous_coefficientsum_body_steps fs_s_pfc_tri_append_previous_coefficientsum_body_steps. ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_steps_summand. fs_h_pfc_tri_append_previous_coefficientsum_body_steps_summand + S (fs_a_pfc_tri_append_previous_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_previous_coefficient)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_steps_summand. pfc_terms_code_tri_append_previous_coefficient = fs_q_pfc_tri_append_previous_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_previous_coefficient) + (fs_a_pfc_tri_append_previous_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_steps_partial. fs_h_pfc_tri_append_previous_coefficientsum_body_steps_partial + S (fs_r_pfc_tri_append_previous_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_steps_partial. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum) + (fs_r_pfc_tri_append_previous_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_previous_coefficientsum_body_steps_successor. fs_h_pfc_tri_append_previous_coefficientsum_body_steps_successor + S (fs_s_pfc_tri_append_previous_coefficientsum_body_steps) = S ((S (S fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum)) /\ exists fs_q_pfc_tri_append_previous_coefficientsum_body_steps_successor. fs_u_pfc_tri_append_previous_coefficientsum = fs_q_pfc_tri_append_previous_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_tri_append_previous_coefficientsum_body_steps)) * fs_v_pfc_tri_append_previous_coefficientsum) + (fs_s_pfc_tri_append_previous_coefficientsum_body_steps))) /\ fs_s_pfc_tri_append_previous_coefficientsum_body_steps = fs_r_pfc_tri_append_previous_coefficientsum_body_steps + fs_a_pfc_tri_append_previous_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_tri_append_previous_coefficientresiduebound. pfa_gap_tri_append_previous_coefficientresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_tri_append_previous_coefficientresiduecongruence pfa_offset_right_tri_append_previous_coefficientresiduecongruence. (pfc_natural_sum_tri_append_previous_coefficient) + (p) * pfa_offset_left_tri_append_previous_coefficientresiduecongruence = (c) + (p) * pfa_offset_right_tri_append_previous_coefficientresiduecongruence))))))))) -> (exists pfc_terms_code_tri_append_actual_coefficient pfc_terms_scale_tri_append_actual_coefficient pfc_natural_sum_tri_append_actual_coefficient. ((forall pfc_index_tri_append_actual_coefficientdiagonal. (exists pfa_gap_tri_append_actual_coefficientdiagonalbound. pfa_gap_tri_append_actual_coefficientdiagonalbound + S (pfc_index_tri_append_actual_coefficientdiagonal) = (S (N))) -> exists pfc_value_tri_append_actual_coefficientdiagonal. ((((exists ff_h_pfp_tri_append_actual_coefficientdiagonalentry. ff_h_pfp_tri_append_actual_coefficientdiagonalentry + S (pfc_value_tri_append_actual_coefficientdiagonal) = S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * pfc_terms_scale_tri_append_actual_coefficient)) /\ exists ff_q_pfp_tri_append_actual_coefficientdiagonalentry. pfc_terms_code_tri_append_actual_coefficient = ff_q_pfp_tri_append_actual_coefficientdiagonalentry * S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * pfc_terms_scale_tri_append_actual_coefficient) + (pfc_value_tri_append_actual_coefficientdiagonal))) /\ ((exists pfc_complement_tri_append_actual_coefficientdiagonalterm pfc_left_tri_append_actual_coefficientdiagonalterm pfc_right_tri_append_actual_coefficientdiagonalterm. (((pfc_index_tri_append_actual_coefficientdiagonal)+pfc_complement_tri_append_actual_coefficientdiagonalterm=(N)) /\ ((((((exists pfa_gap_tri_append_actual_coefficientdiagonaltermleftinside. pfa_gap_tri_append_actual_coefficientdiagonaltermleftinside + S (pfc_index_tri_append_actual_coefficientdiagonal) = (S N)) /\ ((((exists ff_h_pfp_tri_append_actual_coefficientdiagonaltermleftentry. ff_h_pfp_tri_append_actual_coefficientdiagonaltermleftentry + S (pfc_left_tri_append_actual_coefficientdiagonalterm) = S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * AC)) /\ exists ff_q_pfp_tri_append_actual_coefficientdiagonaltermleftentry. AB = ff_q_pfp_tri_append_actual_coefficientdiagonaltermleftentry * S ((S (pfc_index_tri_append_actual_coefficientdiagonal)) * AC) + (pfc_left_tri_append_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_actual_coefficientdiagonaltermleftoutside. pfc_gap_tri_append_actual_coefficientdiagonaltermleftoutside+(S N)=(pfc_index_tri_append_actual_coefficientdiagonal)) /\ (((pfc_left_tri_append_actual_coefficientdiagonalterm)=0))))) /\ ((((((exists pfa_gap_tri_append_actual_coefficientdiagonaltermrightinside. pfa_gap_tri_append_actual_coefficientdiagonaltermrightinside + S (pfc_complement_tri_append_actual_coefficientdiagonalterm) = (S d)) /\ ((((exists ff_h_pfp_tri_append_actual_coefficientdiagonaltermrightentry. ff_h_pfp_tri_append_actual_coefficientdiagonaltermrightentry + S (pfc_right_tri_append_actual_coefficientdiagonalterm) = S ((S (pfc_complement_tri_append_actual_coefficientdiagonalterm)) * bc)) /\ exists ff_q_pfp_tri_append_actual_coefficientdiagonaltermrightentry. bb = ff_q_pfp_tri_append_actual_coefficientdiagonaltermrightentry * S ((S (pfc_complement_tri_append_actual_coefficientdiagonalterm)) * bc) + (pfc_right_tri_append_actual_coefficientdiagonalterm)))))) \/ (((exists pfc_gap_tri_append_actual_coefficientdiagonaltermrightoutside. pfc_gap_tri_append_actual_coefficientdiagonaltermrightoutside+(S d)=(pfc_complement_tri_append_actual_coefficientdiagonalterm)) /\ (((pfc_right_tri_append_actual_coefficientdiagonalterm)=0))))) /\ (((pfc_value_tri_append_actual_coefficientdiagonal)=pfc_left_tri_append_actual_coefficientdiagonalterm*pfc_right_tri_append_actual_coefficientdiagonalterm))))))))))) /\ (((exists fs_u_pfc_tri_append_actual_coefficientsum fs_v_pfc_tri_append_actual_coefficientsum. ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_start. fs_h_pfc_tri_append_actual_coefficientsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_start. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_start * S ((S (0)) * fs_v_pfc_tri_append_actual_coefficientsum) + (0))) /\ ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_terminal. fs_h_pfc_tri_append_actual_coefficientsum_body_terminal + S (pfc_natural_sum_tri_append_actual_coefficient) = S ((S (S (N))) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_terminal. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_terminal * S ((S (S (N))) * fs_v_pfc_tri_append_actual_coefficientsum) + (pfc_natural_sum_tri_append_actual_coefficient))) /\ forall fs_i_pfc_tri_append_actual_coefficientsum_body_steps. (exists fs_lt_pfc_tri_append_actual_coefficientsum_body_steps_bound. fs_lt_pfc_tri_append_actual_coefficientsum_body_steps_bound + S fs_i_pfc_tri_append_actual_coefficientsum_body_steps = S (N)) -> exists fs_a_pfc_tri_append_actual_coefficientsum_body_steps fs_r_pfc_tri_append_actual_coefficientsum_body_steps fs_s_pfc_tri_append_actual_coefficientsum_body_steps. ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_steps_summand. fs_h_pfc_tri_append_actual_coefficientsum_body_steps_summand + S (fs_a_pfc_tri_append_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_actual_coefficient)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_steps_summand. pfc_terms_code_tri_append_actual_coefficient = fs_q_pfc_tri_append_actual_coefficientsum_body_steps_summand * S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * pfc_terms_scale_tri_append_actual_coefficient) + (fs_a_pfc_tri_append_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_steps_partial. fs_h_pfc_tri_append_actual_coefficientsum_body_steps_partial + S (fs_r_pfc_tri_append_actual_coefficientsum_body_steps) = S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_steps_partial. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_steps_partial * S ((S (fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum) + (fs_r_pfc_tri_append_actual_coefficientsum_body_steps))) /\ ((((exists fs_h_pfc_tri_append_actual_coefficientsum_body_steps_successor. fs_h_pfc_tri_append_actual_coefficientsum_body_steps_successor + S (fs_s_pfc_tri_append_actual_coefficientsum_body_steps) = S ((S (S fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum)) /\ exists fs_q_pfc_tri_append_actual_coefficientsum_body_steps_successor. fs_u_pfc_tri_append_actual_coefficientsum = fs_q_pfc_tri_append_actual_coefficientsum_body_steps_successor * S ((S (S fs_i_pfc_tri_append_actual_coefficientsum_body_steps)) * fs_v_pfc_tri_append_actual_coefficientsum) + (fs_s_pfc_tri_append_actual_coefficientsum_body_steps))) /\ fs_s_pfc_tri_append_actual_coefficientsum_body_steps = fs_r_pfc_tri_append_actual_coefficientsum_body_steps + fs_a_pfc_tri_append_actual_coefficientsum_body_steps)))))) /\ ((((exists pfa_gap_tri_append_actual_coefficientresiduebound. pfa_gap_tri_append_actual_coefficientresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_append_actual_coefficientresiduecongruence pfa_offset_right_tri_append_actual_coefficientresiduecongruence. (pfc_natural_sum_tri_append_actual_coefficient) + (p) * pfa_offset_left_tri_append_actual_coefficientresiduecongruence = (r) + (p) * pfa_offset_right_tri_append_actual_coefficientresiduecongruence))))))))) -> (((exists pfa_gap_tri_append_actual_productleft. pfa_gap_tri_append_actual_productleft + S (a) = (p)) /\ (((exists pfa_gap_tri_append_actual_productright. pfa_gap_tri_append_actual_productright + S (b) = (p)) /\ ((((exists pfa_gap_tri_append_actual_productresultbound. pfa_gap_tri_append_actual_productresultbound + S (t) = (p)) /\ ((exists pfa_offset_left_tri_append_actual_productresultcongruence pfa_offset_right_tri_append_actual_productresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_tri_append_actual_productresultcongruence = (t) + (p) * pfa_offset_right_tri_append_actual_productresultcongruence))))))))) -> (((exists pfa_gap_tri_append_resultleft. pfa_gap_tri_append_resultleft + S (c) = (p)) /\ (((exists pfa_gap_tri_append_resultright. pfa_gap_tri_append_resultright + S (t) = (p)) /\ ((((exists pfa_gap_tri_append_resultresultbound. pfa_gap_tri_append_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_tri_append_resultresultcongruence pfa_offset_right_tri_append_resultresultcongruence. ((c) + (t)) + (p) * pfa_offset_left_tri_append_resultresultcongruence = (r) + (p) * pfa_offset_right_tri_append_resultresultcongruence)))))))))Constructive proof overview
Generated structural guide
Appending a quotient coefficient changes its new convolution position by exactly its actual field product with the divisor head; all sum and residue witnesses are real.
The unchanged tactic script uses 4 declared prerequisites and contains 85 exact native proof lines.
Alpha v34 checked-use · first admitted v33 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PX0007 polynomial_diagonal_sum_left_append mod_eq_trans Alpha theorem; checked-use authorized mod_eq_symm Alpha theorem; checked-use authorized mod_eq_add Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Separate the logical casesL21–30
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
04Establish hnL31–40
Establish this local claim before using it. It is not an additional assumption.
- L31
have hn : x5=x2+a*b - L32
specialize polynomial_diagonal_sum_left_append (ab) - L33
specialize polynomial_diagonal_sum_left_append (ac) - L34
specialize polynomial_diagonal_sum_left_append (AB) - L35
specialize polynomial_diagonal_sum_left_append (AC) - L36
specialize polynomial_diagonal_sum_left_append (bb) - L37
specialize polynomial_diagonal_sum_left_append (bc) - L38
specialize polynomial_diagonal_sum_left_append (d) - L39
specialize polynomial_diagonal_sum_left_append (N) - L40
specialize polynomial_diagonal_sum_left_append (a)
05Use earlier factsL41–50
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
specialize polynomial_diagonal_sum_left_append (b) - L42
specialize polynomial_diagonal_sum_left_append (x) - L43
specialize polynomial_diagonal_sum_left_append (x1) - L44
specialize polynomial_diagonal_sum_left_append (x3) - L45
specialize polynomial_diagonal_sum_left_append (x4) - L46
specialize polynomial_diagonal_sum_left_append (x2) - L47
specialize polynomial_diagonal_sum_left_append (x5) - L48
apply polynomial_diagonal_sum_left_append - L49
exact he - L50
exact ha
06Use earlier factsL51–55
07Separate the logical casesL56–60
08Calculate and transport equalitiesL61–61
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L61
rewrite hn at hr_witness_witness_witness_right_right_right
09Separate the logical casesL62–62
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L62
split
10Use earlier factsL63–63
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L63
exact hc_witness_witness_witness_right_right_left
11Separate the logical casesL64–64
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L64
split
12Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
exact hm_right_right_left
13Separate the logical casesL66–66
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L66
split
14Use earlier factsL67–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hr_witness_witness_witness_right_right_left - L68
specialize mod_eq_trans (p) - L69
specialize mod_eq_trans (c+t) - L70
specialize mod_eq_trans (x2+a*b) - L71
specialize mod_eq_trans (r) - L72
apply mod_eq_trans - L73
specialize mod_eq_symm (p) - L74
specialize mod_eq_symm (x2+a*b) - L75
specialize mod_eq_symm (c+t) - L76
apply mod_eq_symm
15Use earlier factsL77–85
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 85 lines
- 0001
intro p - 0002
intro ab - 0003
intro ac - 0004
intro AB - 0005
intro AC - 0006
intro bb - 0007
intro bc - 0008
intro d - 0009
intro N - 0010
intro a - 0011
intro b - 0012
intro c - 0013
intro t - 0014
intro r - 0015
intro he - 0016
intro ha - 0017
intro hb - 0018
intro hc - 0019
intro hr - 0020
intro hm - 0021
cases hc - 0022
cases hc_witness - 0023
cases hc_witness_witness - 0024
cases hc_witness_witness_witness - 0025
cases hc_witness_witness_witness_right - 0026
cases hr - 0027
cases hr_witness - 0028
cases hr_witness_witness - 0029
cases hr_witness_witness_witness - 0030
cases hr_witness_witness_witness_right - 0031
have hn : x5=x2+a*b - 0032
specialize polynomial_diagonal_sum_left_append (ab) - 0033
specialize polynomial_diagonal_sum_left_append (ac) - 0034
specialize polynomial_diagonal_sum_left_append (AB) - 0035
specialize polynomial_diagonal_sum_left_append (AC) - 0036
specialize polynomial_diagonal_sum_left_append (bb) - 0037
specialize polynomial_diagonal_sum_left_append (bc) - 0038
specialize polynomial_diagonal_sum_left_append (d) - 0039
specialize polynomial_diagonal_sum_left_append (N) - 0040
specialize polynomial_diagonal_sum_left_append (a) - 0041
specialize polynomial_diagonal_sum_left_append (b) - 0042
specialize polynomial_diagonal_sum_left_append (x) - 0043
specialize polynomial_diagonal_sum_left_append (x1) - 0044
specialize polynomial_diagonal_sum_left_append (x3) - 0045
specialize polynomial_diagonal_sum_left_append (x4) - 0046
specialize polynomial_diagonal_sum_left_append (x2) - 0047
specialize polynomial_diagonal_sum_left_append (x5) - 0048
apply polynomial_diagonal_sum_left_append - 0049
exact he - 0050
exact ha - 0051
exact hb - 0052
exact hc_witness_witness_witness_left - 0053
exact hc_witness_witness_witness_right_left - 0054
exact hr_witness_witness_witness_left - 0055
exact hr_witness_witness_witness_right_left - 0056
cases hc_witness_witness_witness_right_right - 0057
cases hr_witness_witness_witness_right_right - 0058
cases hm - 0059
cases hm_right - 0060
cases hm_right_right - 0061
rewrite hn at hr_witness_witness_witness_right_right_right - 0062
split - 0063
exact hc_witness_witness_witness_right_right_left - 0064
split - 0065
exact hm_right_right_left - 0066
split - 0067
exact hr_witness_witness_witness_right_right_left - 0068
specialize mod_eq_trans (p) - 0069
specialize mod_eq_trans (c+t) - 0070
specialize mod_eq_trans (x2+a*b) - 0071
specialize mod_eq_trans (r) - 0072
apply mod_eq_trans - 0073
specialize mod_eq_symm (p) - 0074
specialize mod_eq_symm (x2+a*b) - 0075
specialize mod_eq_symm (c+t) - 0076
apply mod_eq_symm - 0077
specialize mod_eq_add (p) - 0078
specialize mod_eq_add (x2) - 0079
specialize mod_eq_add (c) - 0080
specialize mod_eq_add (a*b) - 0081
specialize mod_eq_add (t) - 0082
apply mod_eq_add - 0083
exact hc_witness_witness_witness_right_right_right - 0084
exact hm_right_right_right - 0085
exact hr_witness_witness_witness_right_right_right