Exact expanded PA statement
forall n z. (((exists bcf_lt_gap_bcs_choose_out_of_range. bcf_lt_gap_bcs_choose_out_of_range + S (n) = n) /\ z = 0) \/ ((exists bcf_le_gap_bcs_choose_in_range. bcf_le_gap_bcs_choose_in_range + (n) = n) /\ (exists bcf_row_code_code_bcs_choose bcf_row_code_scale_bcs_choose bcf_row_scale_code_bcs_choose bcf_row_scale_scale_bcs_choose bcf_row_code_bcs_choose bcf_row_scale_bcs_choose. ((forall bcf_row_index_bcs_choose_table. (exists bcf_lt_gap_bcs_choose_table_row_bound. bcf_lt_gap_bcs_choose_table_row_bound + S (bcf_row_index_bcs_choose_table) = S (n)) -> exists bcf_row_code_bcs_choose_table bcf_row_scale_bcs_choose_table. ((((exists bcf_height_bcs_choose_table_decoded_row_code. bcf_height_bcs_choose_table_decoded_row_code + S (bcf_row_code_bcs_choose_table) = S ((S (bcf_row_index_bcs_choose_table)) * bcf_row_code_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_table_decoded_row_code. bcf_row_code_code_bcs_choose = bcf_quotient_bcs_choose_table_decoded_row_code * S ((S (bcf_row_index_bcs_choose_table)) * bcf_row_code_scale_bcs_choose) + (bcf_row_code_bcs_choose_table))) /\ ((((exists bcf_height_bcs_choose_table_decoded_row_scale. bcf_height_bcs_choose_table_decoded_row_scale + S (bcf_row_scale_bcs_choose_table) = S ((S (bcf_row_index_bcs_choose_table)) * bcf_row_scale_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_table_decoded_row_scale. bcf_row_scale_code_bcs_choose = bcf_quotient_bcs_choose_table_decoded_row_scale * S ((S (bcf_row_index_bcs_choose_table)) * bcf_row_scale_scale_bcs_choose) + (bcf_row_scale_bcs_choose_table))) /\ ((bcf_row_index_bcs_choose_table = 0 /\ (forall bcf_index_bcs_choose_table_zero_row. (exists bcf_lt_gap_bcs_choose_table_zero_row_bound. bcf_lt_gap_bcs_choose_table_zero_row_bound + S (bcf_index_bcs_choose_table_zero_row) = S (n)) -> exists bcf_value_bcs_choose_table_zero_row. ((((exists bcf_height_bcs_choose_table_zero_row_entry. bcf_height_bcs_choose_table_zero_row_entry + S (bcf_value_bcs_choose_table_zero_row) = S ((S (bcf_index_bcs_choose_table_zero_row)) * bcf_row_scale_bcs_choose_table)) /\ exists bcf_quotient_bcs_choose_table_zero_row_entry. bcf_row_code_bcs_choose_table = bcf_quotient_bcs_choose_table_zero_row_entry * S ((S (bcf_index_bcs_choose_table_zero_row)) * bcf_row_scale_bcs_choose_table) + (bcf_value_bcs_choose_table_zero_row))) /\ ((bcf_index_bcs_choose_table_zero_row = 0 /\ bcf_value_bcs_choose_table_zero_row = 1) \/ exists bcf_predecessor_bcs_choose_table_zero_row. bcf_index_bcs_choose_table_zero_row = S bcf_predecessor_bcs_choose_table_zero_row /\ bcf_value_bcs_choose_table_zero_row = 0)))) \/ exists bcf_predecessor_bcs_choose_table bcf_previous_code_bcs_choose_table bcf_previous_scale_bcs_choose_table. bcf_row_index_bcs_choose_table = S bcf_predecessor_bcs_choose_table /\ ((((exists bcf_height_bcs_choose_table_decoded_previous_code. bcf_height_bcs_choose_table_decoded_previous_code + S (bcf_previous_code_bcs_choose_table) = S ((S (bcf_predecessor_bcs_choose_table)) * bcf_row_code_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_table_decoded_previous_code. bcf_row_code_code_bcs_choose = bcf_quotient_bcs_choose_table_decoded_previous_code * S ((S (bcf_predecessor_bcs_choose_table)) * bcf_row_code_scale_bcs_choose) + (bcf_previous_code_bcs_choose_table))) /\ ((((exists bcf_height_bcs_choose_table_decoded_previous_scale. bcf_height_bcs_choose_table_decoded_previous_scale + S (bcf_previous_scale_bcs_choose_table) = S ((S (bcf_predecessor_bcs_choose_table)) * bcf_row_scale_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_table_decoded_previous_scale. bcf_row_scale_code_bcs_choose = bcf_quotient_bcs_choose_table_decoded_previous_scale * S ((S (bcf_predecessor_bcs_choose_table)) * bcf_row_scale_scale_bcs_choose) + (bcf_previous_scale_bcs_choose_table))) /\ (forall bcf_index_bcs_choose_table_row_step. (exists bcf_lt_gap_bcs_choose_table_row_step_bound. bcf_lt_gap_bcs_choose_table_row_step_bound + S (bcf_index_bcs_choose_table_row_step) = S (n)) -> exists bcf_value_bcs_choose_table_row_step. ((((exists bcf_height_bcs_choose_table_row_step_entry. bcf_height_bcs_choose_table_row_step_entry + S (bcf_value_bcs_choose_table_row_step) = S ((S (bcf_index_bcs_choose_table_row_step)) * bcf_row_scale_bcs_choose_table)) /\ exists bcf_quotient_bcs_choose_table_row_step_entry. bcf_row_code_bcs_choose_table = bcf_quotient_bcs_choose_table_row_step_entry * S ((S (bcf_index_bcs_choose_table_row_step)) * bcf_row_scale_bcs_choose_table) + (bcf_value_bcs_choose_table_row_step))) /\ ((bcf_index_bcs_choose_table_row_step = 0 /\ bcf_value_bcs_choose_table_row_step = 1) \/ exists bcf_predecessor_bcs_choose_table_row_step bcf_left_bcs_choose_table_row_step bcf_right_bcs_choose_table_row_step. bcf_index_bcs_choose_table_row_step = S bcf_predecessor_bcs_choose_table_row_step /\ ((((exists bcf_height_bcs_choose_table_row_step_previous_left. bcf_height_bcs_choose_table_row_step_previous_left + S (bcf_left_bcs_choose_table_row_step) = S ((S (bcf_predecessor_bcs_choose_table_row_step)) * bcf_previous_scale_bcs_choose_table)) /\ exists bcf_quotient_bcs_choose_table_row_step_previous_left. bcf_previous_code_bcs_choose_table = bcf_quotient_bcs_choose_table_row_step_previous_left * S ((S (bcf_predecessor_bcs_choose_table_row_step)) * bcf_previous_scale_bcs_choose_table) + (bcf_left_bcs_choose_table_row_step))) /\ ((((exists bcf_height_bcs_choose_table_row_step_previous_right. bcf_height_bcs_choose_table_row_step_previous_right + S (bcf_right_bcs_choose_table_row_step) = S ((S (S (bcf_predecessor_bcs_choose_table_row_step))) * bcf_previous_scale_bcs_choose_table)) /\ exists bcf_quotient_bcs_choose_table_row_step_previous_right. bcf_previous_code_bcs_choose_table = bcf_quotient_bcs_choose_table_row_step_previous_right * S ((S (S (bcf_predecessor_bcs_choose_table_row_step))) * bcf_previous_scale_bcs_choose_table) + (bcf_right_bcs_choose_table_row_step))) /\ bcf_value_bcs_choose_table_row_step = bcf_left_bcs_choose_table_row_step + bcf_right_bcs_choose_table_row_step))))))))))) /\ ((((exists bcf_height_bcs_choose_decoded_row_code. bcf_height_bcs_choose_decoded_row_code + S (bcf_row_code_bcs_choose) = S ((S (n)) * bcf_row_code_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_decoded_row_code. bcf_row_code_code_bcs_choose = bcf_quotient_bcs_choose_decoded_row_code * S ((S (n)) * bcf_row_code_scale_bcs_choose) + (bcf_row_code_bcs_choose))) /\ ((((exists bcf_height_bcs_choose_decoded_row_scale. bcf_height_bcs_choose_decoded_row_scale + S (bcf_row_scale_bcs_choose) = S ((S (n)) * bcf_row_scale_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_decoded_row_scale. bcf_row_scale_code_bcs_choose = bcf_quotient_bcs_choose_decoded_row_scale * S ((S (n)) * bcf_row_scale_scale_bcs_choose) + (bcf_row_scale_bcs_choose))) /\ (((exists bcf_height_bcs_choose_decoded_value. bcf_height_bcs_choose_decoded_value + S (z) = S ((S (n)) * bcf_row_scale_bcs_choose)) /\ exists bcf_quotient_bcs_choose_decoded_value. bcf_row_code_bcs_choose = bcf_quotient_bcs_choose_decoded_value * S ((S (n)) * bcf_row_scale_bcs_choose) + (z))))))))) -> z = 1Structural proof guide
The recurrence-defined diagonal binomial coefficient is one.
Direct prerequisites: lt_irrefl_expanded, le_refl, beta_pascal_table_diagonal_boundary. The authored body proceeds by case analysis (13), intermediate claims (5).
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro n - 0002
intro z - 0003
intro hchoose - 0004
cases hchoose - 0005
cases hchoose_left - 0006
exfalso - 0007
specialize lt_irrefl_expanded n - 0008
apply lt_irrefl_expanded - 0009
exact hchoose_left_left - 0010
cases hchoose_right - 0011
cases hchoose_right_right - 0012
cases hchoose_right_right_witness - 0013
cases hchoose_right_right_witness_witness - 0014
cases hchoose_right_right_witness_witness_witness - 0015
cases hchoose_right_right_witness_witness_witness_witness - 0016
cases hchoose_right_right_witness_witness_witness_witness_witness - 0017
cases hchoose_right_right_witness_witness_witness_witness_witness_witness - 0018
cases hchoose_right_right_witness_witness_witness_witness_witness_witness_right - 0019
cases hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right - 0020
have hbound : exists bcf_lt_gap_bcs_row_bound. bcf_lt_gap_bcs_row_bound + S (n) = S n - 0021
specialize le_refl (S n) - 0022
exact le_refl - 0023
have htable_family : forall bcf_row_index_bcs_table_family. (exists bcf_lt_gap_bcs_table_family_bound. bcf_lt_gap_bcs_table_family_bound + S (bcf_row_index_bcs_table_family) = S n) -> (forall bcf_row_code_bcs_table_family_rows bcf_row_scale_bcs_table_family_rows. (((exists bcf_height_bcs_table_family_rows_code_at. bcf_height_bcs_table_family_rows_code_at + S (bcf_row_code_bcs_table_family_rows) = S ((S (bcf_row_index_bcs_table_family)) * x1)) /\ exists bcf_quotient_bcs_table_family_rows_code_at. x = bcf_quotient_bcs_table_family_rows_code_at * S ((S (bcf_row_index_bcs_table_family)) * x1) + (bcf_row_code_bcs_table_family_rows))) -> (((exists bcf_height_bcs_table_family_rows_scale_at. bcf_height_bcs_table_family_rows_scale_at + S (bcf_row_scale_bcs_table_family_rows) = S ((S (bcf_row_index_bcs_table_family)) * x3)) /\ exists bcf_quotient_bcs_table_family_rows_scale_at. x2 = bcf_quotient_bcs_table_family_rows_scale_at * S ((S (bcf_row_index_bcs_table_family)) * x3) + (bcf_row_scale_bcs_table_family_rows))) -> ((((exists bcf_lt_gap_bcs_table_family_rows_boundary_diagonal_bound. bcf_lt_gap_bcs_table_family_rows_boundary_diagonal_bound + S (bcf_row_index_bcs_table_family) = S n) -> forall bcf_diagonal_value_bcs_table_family_rows_boundary. (((exists bcf_height_bcs_table_family_rows_boundary_diagonal_at. bcf_height_bcs_table_family_rows_boundary_diagonal_at + S (bcf_diagonal_value_bcs_table_family_rows_boundary) = S ((S (bcf_row_index_bcs_table_family)) * bcf_row_scale_bcs_table_family_rows)) /\ exists bcf_quotient_bcs_table_family_rows_boundary_diagonal_at. bcf_row_code_bcs_table_family_rows = bcf_quotient_bcs_table_family_rows_boundary_diagonal_at * S ((S (bcf_row_index_bcs_table_family)) * bcf_row_scale_bcs_table_family_rows) + (bcf_diagonal_value_bcs_table_family_rows_boundary))) -> bcf_diagonal_value_bcs_table_family_rows_boundary = 1) /\ forall bcf_above_index_bcs_table_family_rows_boundary bcf_above_value_bcs_table_family_rows_boundary. (exists bcf_lt_gap_bcs_table_family_rows_boundary_above_order. bcf_lt_gap_bcs_table_family_rows_boundary_above_order + S (bcf_row_index_bcs_table_family) = bcf_above_index_bcs_table_family_rows_boundary) -> (exists bcf_lt_gap_bcs_table_family_rows_boundary_above_bound. bcf_lt_gap_bcs_table_family_rows_boundary_above_bound + S (bcf_above_index_bcs_table_family_rows_boundary) = S n) -> (((exists bcf_height_bcs_table_family_rows_boundary_above_at. bcf_height_bcs_table_family_rows_boundary_above_at + S (bcf_above_value_bcs_table_family_rows_boundary) = S ((S (bcf_above_index_bcs_table_family_rows_boundary)) * bcf_row_scale_bcs_table_family_rows)) /\ exists bcf_quotient_bcs_table_family_rows_boundary_above_at. bcf_row_code_bcs_table_family_rows = bcf_quotient_bcs_table_family_rows_boundary_above_at * S ((S (bcf_above_index_bcs_table_family_rows_boundary)) * bcf_row_scale_bcs_table_family_rows) + (bcf_above_value_bcs_table_family_rows_boundary))) -> bcf_above_value_bcs_table_family_rows_boundary = 0))) - 0024
specialize beta_pascal_table_diagonal_boundary x - 0025
specialize beta_pascal_table_diagonal_boundary x1 - 0026
specialize beta_pascal_table_diagonal_boundary x2 - 0027
specialize beta_pascal_table_diagonal_boundary x3 - 0028
specialize beta_pascal_table_diagonal_boundary (S n) - 0029
specialize beta_pascal_table_diagonal_boundary (S n) - 0030
apply beta_pascal_table_diagonal_boundary - 0031
exact hchoose_right_right_witness_witness_witness_witness_witness_witness_left - 0032
have hrow_family : forall bcf_row_code_bcs_row_family bcf_row_scale_bcs_row_family. (((exists bcf_height_bcs_row_family_code_at. bcf_height_bcs_row_family_code_at + S (bcf_row_code_bcs_row_family) = S ((S (n)) * x1)) /\ exists bcf_quotient_bcs_row_family_code_at. x = bcf_quotient_bcs_row_family_code_at * S ((S (n)) * x1) + (bcf_row_code_bcs_row_family))) -> (((exists bcf_height_bcs_row_family_scale_at. bcf_height_bcs_row_family_scale_at + S (bcf_row_scale_bcs_row_family) = S ((S (n)) * x3)) /\ exists bcf_quotient_bcs_row_family_scale_at. x2 = bcf_quotient_bcs_row_family_scale_at * S ((S (n)) * x3) + (bcf_row_scale_bcs_row_family))) -> ((((exists bcf_lt_gap_bcs_row_family_boundary_diagonal_bound. bcf_lt_gap_bcs_row_family_boundary_diagonal_bound + S (n) = S n) -> forall bcf_diagonal_value_bcs_row_family_boundary. (((exists bcf_height_bcs_row_family_boundary_diagonal_at. bcf_height_bcs_row_family_boundary_diagonal_at + S (bcf_diagonal_value_bcs_row_family_boundary) = S ((S (n)) * bcf_row_scale_bcs_row_family)) /\ exists bcf_quotient_bcs_row_family_boundary_diagonal_at. bcf_row_code_bcs_row_family = bcf_quotient_bcs_row_family_boundary_diagonal_at * S ((S (n)) * bcf_row_scale_bcs_row_family) + (bcf_diagonal_value_bcs_row_family_boundary))) -> bcf_diagonal_value_bcs_row_family_boundary = 1) /\ forall bcf_above_index_bcs_row_family_boundary bcf_above_value_bcs_row_family_boundary. (exists bcf_lt_gap_bcs_row_family_boundary_above_order. bcf_lt_gap_bcs_row_family_boundary_above_order + S (n) = bcf_above_index_bcs_row_family_boundary) -> (exists bcf_lt_gap_bcs_row_family_boundary_above_bound. bcf_lt_gap_bcs_row_family_boundary_above_bound + S (bcf_above_index_bcs_row_family_boundary) = S n) -> (((exists bcf_height_bcs_row_family_boundary_above_at. bcf_height_bcs_row_family_boundary_above_at + S (bcf_above_value_bcs_row_family_boundary) = S ((S (bcf_above_index_bcs_row_family_boundary)) * bcf_row_scale_bcs_row_family)) /\ exists bcf_quotient_bcs_row_family_boundary_above_at. bcf_row_code_bcs_row_family = bcf_quotient_bcs_row_family_boundary_above_at * S ((S (bcf_above_index_bcs_row_family_boundary)) * bcf_row_scale_bcs_row_family) + (bcf_above_value_bcs_row_family_boundary))) -> bcf_above_value_bcs_row_family_boundary = 0)) - 0033
specialize htable_family n - 0034
apply htable_family - 0035
exact hbound - 0036
have hboundary : (((exists bcf_lt_gap_bcs_boundary_diagonal_bound. bcf_lt_gap_bcs_boundary_diagonal_bound + S (n) = S n) -> forall bcf_diagonal_value_bcs_boundary. (((exists bcf_height_bcs_boundary_diagonal_at. bcf_height_bcs_boundary_diagonal_at + S (bcf_diagonal_value_bcs_boundary) = S ((S (n)) * x5)) /\ exists bcf_quotient_bcs_boundary_diagonal_at. x4 = bcf_quotient_bcs_boundary_diagonal_at * S ((S (n)) * x5) + (bcf_diagonal_value_bcs_boundary))) -> bcf_diagonal_value_bcs_boundary = 1) /\ forall bcf_above_index_bcs_boundary bcf_above_value_bcs_boundary. (exists bcf_lt_gap_bcs_boundary_above_order. bcf_lt_gap_bcs_boundary_above_order + S (n) = bcf_above_index_bcs_boundary) -> (exists bcf_lt_gap_bcs_boundary_above_bound. bcf_lt_gap_bcs_boundary_above_bound + S (bcf_above_index_bcs_boundary) = S n) -> (((exists bcf_height_bcs_boundary_above_at. bcf_height_bcs_boundary_above_at + S (bcf_above_value_bcs_boundary) = S ((S (bcf_above_index_bcs_boundary)) * x5)) /\ exists bcf_quotient_bcs_boundary_above_at. x4 = bcf_quotient_bcs_boundary_above_at * S ((S (bcf_above_index_bcs_boundary)) * x5) + (bcf_above_value_bcs_boundary))) -> bcf_above_value_bcs_boundary = 0) - 0037
specialize hrow_family x4 - 0038
specialize hrow_family x5 - 0039
apply hrow_family - 0040
exact hchoose_right_right_witness_witness_witness_witness_witness_witness_right_left - 0041
exact hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right_left - 0042
cases hboundary - 0043
have hdiagonal : forall z. (((exists bcf_height_bcs_diagonal_family. bcf_height_bcs_diagonal_family + S (z) = S ((S (n)) * x5)) /\ exists bcf_quotient_bcs_diagonal_family. x4 = bcf_quotient_bcs_diagonal_family * S ((S (n)) * x5) + (z))) -> z = 1 - 0044
apply hboundary_left - 0045
exact hbound - 0046
specialize hdiagonal z - 0047
apply hdiagonal - 0048
exact hchoose_right_right_witness_witness_witness_witness_witness_witness_right_right_right