Exact expanded PA statement
forall p n. (exists bcf_le_gap_bdftt_lower. bcf_le_gap_bdftt_lower + (p) = n) -> (exists bcf_lt_gap_bdftt_scaled. bcf_lt_gap_bdftt_scaled + S (n + n) = (p + p) + p) -> exists r R. (((n) = (p) * (1) + (r) /\ (exists bcf_lt_gap_bdftt_left_bound. bcf_lt_gap_bdftt_left_bound + S (r) = p))) /\ (((n + n) = (p) * (2) + (R) /\ (exists bcf_lt_gap_bdftt_right_bound. bcf_lt_gap_bdftt_right_bound + S (R) = p)))Structural proof guide
The two-thirds range fixes the first quotients at one and two.
Direct prerequisites: add_le_add_right, add_le_add_left, le_trans, lt_of_le_of_lt, add_comm, add_lt_cancel_left, division_quotient_one_of_bounds, division_quotient_two_of_bounds. The authored body proceeds by case analysis (2), intermediate claims (10), equality transport (2).
Proof neighborhood
Direct dependencies
BT0014 add_le_add_right BT0015 add_le_add_left BT000F le_trans BT001E lt_of_le_of_lt BT0002 add_comm BT00XC add_lt_cancel_left BT00Y8 division_quotient_one_of_bounds BT00Y9 division_quotient_two_of_boundsDirect 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 p - 0002
intro n - 0003
intro hlower - 0004
intro hscaled - 0005
have hdouble_lower : exists bcf_le_gap_bdftt_double_lower. bcf_le_gap_bdftt_double_lower + (p + p) = n + n - 0006
have hdouble_left : exists bcf_le_gap_bdftt_double_left. bcf_le_gap_bdftt_double_left + (p + p) = n + p - 0007
specialize add_le_add_right p - 0008
specialize add_le_add_right n - 0009
specialize add_le_add_right p - 0010
apply add_le_add_right - 0011
exact hlower - 0012
have hshift_lower : exists bcf_le_gap_bdftt_shift_lower. bcf_le_gap_bdftt_shift_lower + (n + p) = n + n - 0013
specialize add_le_add_left p - 0014
specialize add_le_add_left n - 0015
specialize add_le_add_left n - 0016
apply add_le_add_left - 0017
exact hlower - 0018
specialize le_trans (p + p) - 0019
specialize le_trans (n + p) - 0020
specialize le_trans (n + n) - 0021
apply le_trans - 0022
exact hdouble_left - 0023
exact hshift_lower - 0024
have hshift_lower : exists bcf_le_gap_bdftt_shift_lower. bcf_le_gap_bdftt_shift_lower + (n + p) = n + n - 0025
specialize add_le_add_left p - 0026
specialize add_le_add_left n - 0027
specialize add_le_add_left n - 0028
apply add_le_add_left - 0029
exact hlower - 0030
have hshift_strict : exists bcf_lt_gap_bdftt_shift_strict. bcf_lt_gap_bdftt_shift_strict + S (n + p) = (p + p) + p - 0031
specialize lt_of_le_of_lt (n + p) - 0032
specialize lt_of_le_of_lt (n + n) - 0033
specialize lt_of_le_of_lt ((p + p) + p) - 0034
apply lt_of_le_of_lt - 0035
exact hshift_lower - 0036
exact hscaled - 0037
have hleft_comm : n + p = p + n - 0038
apply add_comm - 0039
rewrite hleft_comm at hshift_strict - 0040
have hright_comm : (p + p) + p = p + (p + p) - 0041
apply add_comm - 0042
rewrite hright_comm at hshift_strict - 0043
have hfirst_upper : exists bcf_lt_gap_bdftt_upper. bcf_lt_gap_bdftt_upper + S (n) = p + p - 0044
specialize add_lt_cancel_left p - 0045
specialize add_lt_cancel_left n - 0046
specialize add_lt_cancel_left (p + p) - 0047
apply add_lt_cancel_left - 0048
exact hshift_strict - 0049
have hfirst : exists r. ((n) = (p) * (1) + (r) /\ (exists bcf_lt_gap_bdftt_left_bound. bcf_lt_gap_bdftt_left_bound + S (r) = p)) - 0050
specialize division_quotient_one_of_bounds p - 0051
specialize division_quotient_one_of_bounds n - 0052
apply division_quotient_one_of_bounds - 0053
exact hlower - 0054
exact hfirst_upper - 0055
have hsecond : exists R. ((n + n) = (p) * (2) + (R) /\ (exists bcf_lt_gap_bdftt_right_bound. bcf_lt_gap_bdftt_right_bound + S (R) = p)) - 0056
specialize division_quotient_two_of_bounds p - 0057
specialize division_quotient_two_of_bounds (n + n) - 0058
apply division_quotient_two_of_bounds - 0059
exact hdouble_lower - 0060
exact hscaled - 0061
cases hfirst - 0062
cases hsecond - 0063
exists x - 0064
exists x1 - 0065
split - 0066
exact hfirst_witness - 0067
exact hsecond_witness