kernel-nat-multiset-prod-sel-dvd-prod
- Kind
- kernel-term
- Status
- checked
Supports: Nat.Multiset.prodSel_dvd_prod is admitted by the trusted kernel gate with the type recorded in formal.statement.
test "$(cargo run -q --release -p axeyum-lean-kernel --example nat_theorem_inventory -- Nat.Multiset.prodSel_dvd_prod 2>/dev/null | grep -Fc '((x0 : AxNat.Multiset) -> ((x1 : ((x1 : AxNat) -> Bool)) -> AxNat.dvd (AxNat.Multiset.prodSel x0 x1) (AxNat.Multiset.prod x0)))')" -ge 1 Evidence notes
The pattern is the FULL admitted type as rendered by Kernel::render_lean, not the theorem's name, so a drifted statement fails this check. Nat.prodRange_dvd_prodRange pushes a pointwise divisibility under the product fold; the pointwise fact is a two-branch Bool.rec, dvd x x on the selected side and dvd 1 x on the unselected side. Nat.mul_dvd_mul is the successor step and had to be declared here: the prelude had Nat.dvd_mul, Nat.dvd_mul_right_of_dvd and Nat.dvd_trans but nothing MULTIPLYING two divisibilities.