Exact expanded PA statement
forall d n. ~(d = 0) -> (exists q. n = d * q) \/ ~(exists q. n = d * q)Structural proof guide
Divisibility by a nonzero natural is constructively decidable.
Direct prerequisites: eq_decidable, division_remainder_exists, multiple_has_zero_remainder, division_remainder_unique. The authored body proceeds by case analysis (9), intermediate claims (4), equality transport (2).
Proof neighborhood
Direct dependencies
BT003A eq_decidable BT001P division_remainder_exists BT001W multiple_has_zero_remainder BT001U division_remainder_uniqueDirect 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 d - 0002
intro n - 0003
intro hd - 0004
have hdiv : exists q r. n = d * q + r /\ S r <= d - 0005
apply division_remainder_exists - 0006
exact hd - 0007
cases hdiv - 0008
cases hdiv_witness - 0009
cases hdiv_witness_witness - 0010
specialize eq_decidable x1 - 0011
specialize eq_decidable 0 - 0012
have hr : x1 = 0 \/ ~(x1 = 0) - 0013
apply eq_decidable - 0014
cases hr - 0015
left - 0016
exists x - 0017
rewrite hr_left at hdiv_witness_witness_left - 0018
rewrite PA3 at hdiv_witness_witness_left - 0019
exact hdiv_witness_witness_left - 0020
right - 0021
intro hmul - 0022
have hzero : exists q r. ((n = d * q + r /\ r = 0) /\ S r <= d) - 0023
apply multiple_has_zero_remainder - 0024
exact hd - 0025
exact hmul - 0026
cases hzero - 0027
cases hzero_witness - 0028
cases hzero_witness_witness - 0029
cases hzero_witness_witness_left - 0030
have huniq : x = x2 /\ x1 = x3 - 0031
apply division_remainder_unique - 0032
exact hdiv_witness_witness_left - 0033
exact hdiv_witness_witness_right - 0034
exact hzero_witness_witness_left_left - 0035
exact hzero_witness_witness_right - 0036
cases huniq - 0037
apply hr_right - 0038
trans x3 - 0039
exact huniq_right - 0040
exact hzero_witness_witness_left_right