Exact expanded PA statement
forall m n q r q2 r2. n = m * q + r -> (exists k. k + S r = m) -> n = m * q2 + r2 -> (exists k. k + S r2 = m) -> q = q2 /\ r = r2Structural proof guide
Bounded quotient-remainder decompositions have unique quotients and remainders.
Direct prerequisites: zero_add, le_total, zero_or_succ, add_left_cancel, positive_quotient_gap_impossible. The authored body proceeds by case analysis (7), intermediate claims (1), equality transport (8).
Proof neighborhood
Direct dependencies
BT0000 zero_add BT000K le_total BT000Q zero_or_succ BT000V add_left_cancel BT001S positive_quotient_gap_impossibleDirect dependents
BT003B multiple_decidable_nonzero BT003W mod_eq_bounded_unique BT0042 beta_at_unique BT00S1 power_quotient_prefix_transport BT00SG division_remainder_successor_cases BT00SH division_successor_quotient_by_bit BT00SS prime_power_quotient_prefix_last_zero BT00XF division_zero_quotient_of_lt BT00XG division_double_quotient_bit BT00YC double_quotient_carry_prefix_entries_zeroFormal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro m - 0002
intro n - 0003
intro q - 0004
intro r - 0005
intro q2 - 0006
intro r2 - 0007
intro h1 - 0008
intro hr - 0009
intro h2 - 0010
intro hr2 - 0011
have hsum : m * q + r = m * q2 + r2 - 0012
trans n - 0013
symm - 0014
exact h1 - 0015
exact h2 - 0016
specialize le_total q - 0017
specialize le_total q2 - 0018
cases le_total - 0019
cases le_total_left - 0020
specialize zero_or_succ x - 0021
cases zero_or_succ - 0022
rewrite zero_or_succ_left at le_total_left_witness - 0023
specialize zero_add q - 0024
rewrite zero_add at le_total_left_witness - 0025
split - 0026
exact le_total_left_witness - 0027
specialize add_left_cancel (m * q) - 0028
specialize add_left_cancel r - 0029
specialize add_left_cancel r2 - 0030
apply add_left_cancel - 0031
rewrite <- le_total_left_witness at hsum - 0032
exact hsum - 0033
cases zero_or_succ_right - 0034
exfalso - 0035
specialize positive_quotient_gap_impossible m - 0036
specialize positive_quotient_gap_impossible q - 0037
specialize positive_quotient_gap_impossible q2 - 0038
specialize positive_quotient_gap_impossible r - 0039
specialize positive_quotient_gap_impossible r2 - 0040
specialize positive_quotient_gap_impossible x1 - 0041
apply positive_quotient_gap_impossible - 0042
exact hr - 0043
rewrite zero_or_succ_right_witness at le_total_left_witness - 0044
exact le_total_left_witness - 0045
exact hsum - 0046
cases le_total_right - 0047
specialize zero_or_succ x - 0048
cases zero_or_succ - 0049
rewrite zero_or_succ_left at le_total_right_witness - 0050
specialize zero_add q2 - 0051
rewrite zero_add at le_total_right_witness - 0052
split - 0053
symm - 0054
exact le_total_right_witness - 0055
specialize add_left_cancel (m * q) - 0056
specialize add_left_cancel r - 0057
specialize add_left_cancel r2 - 0058
apply add_left_cancel - 0059
rewrite le_total_right_witness at hsum - 0060
exact hsum - 0061
cases zero_or_succ_right - 0062
exfalso - 0063
specialize positive_quotient_gap_impossible m - 0064
specialize positive_quotient_gap_impossible q2 - 0065
specialize positive_quotient_gap_impossible q - 0066
specialize positive_quotient_gap_impossible r2 - 0067
specialize positive_quotient_gap_impossible r - 0068
specialize positive_quotient_gap_impossible x1 - 0069
apply positive_quotient_gap_impossible - 0070
exact hr2 - 0071
rewrite zero_or_succ_right_witness at le_total_right_witness - 0072
exact le_total_right_witness - 0073
symm - 0074
exact hsum