Identifier
F:nat-multiset-pow-count-dvd-prod
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For a multiset m of naturals and any natural x: x raised to the multiplicity of x in m divides the product of m.

Formal statement
theorem Nat.Multiset.pow_count_dvd_prod : ((x0 : AxNat.Multiset) -> ((x1 : AxNat) -> AxNat.dvd (AxNat.pow x1 (AxNat.Multiset.count x0 x1)) (AxNat.Multiset.prod x0)))

Dependencies

The graph shows direct ledger edges. Follow a node to open its artifact page.

Direct dependencies appear to the left. The current fact is in the center. Facts that depend directly on it appear to the right. Every factor below the bound di [generated] kernel theorem Nat. 1 is a left identity for multip [generated] kernel theorem Nat. Current fact Uniqueness of prime factorizati
4 direct dependencies 1 direct dependents

Evidence

kernel-multiset-pow-count-dvd-prod

Kind
kernel-term
Status
checked

Supports: Nat.Multiset.pow_count_dvd_prod is admitted by the trusted kernel gate with the type recorded in formal.statement.

Checker command
test "$(cargo run -q -p axeyum-lean-kernel --example nat_theorem_inventory -- Multiset.pow_count_dvd_prod 2>/dev/null | grep -Ec '^Nat\.Multiset\.pow_count_dvd_prod[[:space:]]')" -ge 1
Evidence notes

`build_nat_prelude` admits this theorem only through the trusted kernel gate. `crates/axeyum-lean-kernel/src/nat_prelude/multiset_tests.rs` additionally INSTANTIATES it at concrete arguments and checks the inferred statement is the arithmetic fact it should be (`4 | 12` at the multiset {2,2,3} and the point 2, with `8 | 12` as the negative control) -- the trusted gate cannot tell that `count` and `prod` unfold to the right numbers.

footprint-multiset-pow-count-dvd-prod

Kind
instance-pin
Status
checked

Supports: axiom_footprint: [] -- the Nat environment admits no trusted declaration

Checker command
cargo run -q -p axeyum-lean-kernel --example nat_axiom_inventory -- --require-axiom-free nat
Evidence notes

Reports `nat: axiom=0 opaque=0 quotient=0 total_trusted=0` over the FULL trusted surface (Axiom, Opaque and Quotient), not `Declaration::Axiom` alone, and exits non-zero unless the surface is empty. The enumeration is per-environment rather than per-theorem; it bounds this theorem's footprint because a proof cannot depend on a trusted declaration the environment does not contain. Read directly from `Kernel::axiom_footprint` for these ten `Nat.Multiset.*` theorems, `theorem_axiom_footprint` prints footprint size 0 and an empty axiom column for every one.

Provenance

{
  "date": "2026-09-02",
  "established_by": "axeyum-lean-kernel build_nat_prelude",
  "source": "theorem name and canonical type read directly via nat_theorem_inventory, which prints render_lean of the admitted type; declared by `nat_prelude/multiset.rs` (lane nat-multiset, ADR-1520)."
}