Exact expanded PA statement
forall B n. ~(n = 0) -> ~(n = 1) -> (exists bpr_gap_bb8npsp_square. bpr_gap_bb8npsp_square + S (n) = S B * S B) -> ~((~(n = 1) /\ forall bpr_left_bb8npsp_source bpr_right_bb8npsp_source. n = bpr_left_bb8npsp_source * bpr_right_bb8npsp_source -> bpr_left_bb8npsp_source = 1 \/ bpr_right_bb8npsp_source = 1)) -> (exists p. ((~(p = 1) /\ forall bpr_left_bb8npsp_prime bpr_right_bb8npsp_prime. p = bpr_left_bb8npsp_prime * bpr_right_bb8npsp_prime -> bpr_left_bb8npsp_prime = 1 \/ bpr_right_bb8npsp_prime = 1)) /\ ((exists bpr_le_gap_bb8npsp_bound. bpr_le_gap_bb8npsp_bound + (p) = (B)) /\ (exists bpr_quotient_bb8npsp_divides. n = (p) * bpr_quotient_bb8npsp_divides)))Structural proof guide
Every composite below (B+1)^2 has a prime divisor at most B.
Direct prerequisites: prime_or_composite, factor_pair_has_small_member_below_square, mul_zero_left, prime_divisor_exists, divisor_le_nonzero, le_trans, multiple_trans, mul_comm. The authored body proceeds by case analysis (10), intermediate claims (9), equality transport (2).
Proof neighborhood
Direct dependencies
BT003F prime_or_composite BT0117 factor_pair_has_small_member_below_square BT0004 mul_zero_left BT003L prime_divisor_exists BT002D divisor_le_nonzero BT000F le_trans BT002C multiple_trans BT0006 mul_commDirect 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 B - 0002
intro n - 0003
intro hn0 - 0004
intro hn1 - 0005
intro hbound - 0006
intro hnotprime - 0007
specialize prime_or_composite n - 0008
have hkind : ((~(n = 1) /\ forall a b. n = a * b -> a = 1 \/ b = 1) \/ exists c d. ((~(c = 1) /\ ~(d = 1)) /\ n = c * d)) - 0009
apply prime_or_composite - 0010
exact hn0 - 0011
exact hn1 - 0012
cases hkind - 0013
exfalso - 0014
apply hnotprime - 0015
exact hkind_left - 0016
cases hkind_right - 0017
cases hkind_right_witness - 0018
cases hkind_right_witness_witness - 0019
cases hkind_right_witness_witness_left - 0020
have hsmall : (exists k. k + x = B) \/ (exists k. k + x1 = B) - 0021
specialize factor_pair_has_small_member_below_square B - 0022
specialize factor_pair_has_small_member_below_square n - 0023
specialize factor_pair_has_small_member_below_square x - 0024
specialize factor_pair_has_small_member_below_square x1 - 0025
apply factor_pair_has_small_member_below_square - 0026
exact hkind_right_witness_witness_right - 0027
exact hbound - 0028
cases hsmall - 0029
have hx0 : ~(x = 0) - 0030
intro hx0_source - 0031
apply hn0 - 0032
trans x * x1 - 0033
exact hkind_right_witness_witness_right - 0034
rewrite hx0_source - 0035
apply mul_zero_left - 0036
have hp : exists p. ((~(p = 1) /\ forall a b. p = a * b -> a = 1 \/ b = 1) /\ exists q. x = p * q) - 0037
specialize prime_divisor_exists x - 0038
apply prime_divisor_exists - 0039
exact hx0 - 0040
exact hkind_right_witness_witness_left_left - 0041
cases hp - 0042
cases hp_witness - 0043
exists x2 - 0044
split - 0045
exact hp_witness_left - 0046
split - 0047
have hpx : exists k. k + x2 = x - 0048
specialize divisor_le_nonzero x2 - 0049
specialize divisor_le_nonzero x - 0050
apply divisor_le_nonzero - 0051
exact hx0 - 0052
exact hp_witness_right - 0053
specialize le_trans x2 - 0054
specialize le_trans x - 0055
specialize le_trans B - 0056
apply le_trans - 0057
exact hpx - 0058
exact hsmall_left - 0059
specialize multiple_trans x - 0060
specialize multiple_trans x2 - 0061
specialize multiple_trans n - 0062
apply multiple_trans - 0063
exists x1 - 0064
exact hkind_right_witness_witness_right - 0065
exact hp_witness_right - 0066
have hswap : n = x1 * x - 0067
trans x * x1 - 0068
exact hkind_right_witness_witness_right - 0069
apply mul_comm - 0070
have hx10 : ~(x1 = 0) - 0071
intro hx10_source - 0072
apply hn0 - 0073
trans x1 * x - 0074
exact hswap - 0075
rewrite hx10_source - 0076
apply mul_zero_left - 0077
have hp : exists p. ((~(p = 1) /\ forall a b. p = a * b -> a = 1 \/ b = 1) /\ exists q. x1 = p * q) - 0078
specialize prime_divisor_exists x1 - 0079
apply prime_divisor_exists - 0080
exact hx10 - 0081
exact hkind_right_witness_witness_left_right - 0082
cases hp - 0083
cases hp_witness - 0084
exists x2 - 0085
split - 0086
exact hp_witness_left - 0087
split - 0088
have hpx : exists k. k + x2 = x1 - 0089
specialize divisor_le_nonzero x2 - 0090
specialize divisor_le_nonzero x1 - 0091
apply divisor_le_nonzero - 0092
exact hx10 - 0093
exact hp_witness_right - 0094
specialize le_trans x2 - 0095
specialize le_trans x1 - 0096
specialize le_trans B - 0097
apply le_trans - 0098
exact hpx - 0099
exact hsmall_right - 0100
specialize multiple_trans x1 - 0101
specialize multiple_trans x2 - 0102
specialize multiple_trans n - 0103
apply multiple_trans - 0104
exists x - 0105
exact hswap - 0106
exact hp_witness_right