pith. machine review for the scientific record. sign in
module module high

IndisputableMonolith.NumberTheory.Primes.Squarefree

show as:
view Lean formalization →

The Squarefree module defines squarefreeness for nonzero natural numbers via prime exponents: n is squarefree precisely when vp(n) ≤ 1 for every prime p. It supplies a thin, stable wrapper around Mathlib's Nat.squarefree_iff_factorization_le_one for use in prime and arithmetic-function code. Number theorists and Recognition Science developers cite it when working with factorization-based properties of integers. The module consists of direct equivalences and lemmas that translate the squarefree condition using the vp interface.

claimA nonzero natural number $n$ is squarefree if and only if $v_p(n) ≤ 1$ for every prime $p$.

background

This module sits inside the NumberTheory.Primes hierarchy and imports the Factorization module, which defines the prime exponent function vp(n, p) together with algebraic laws such as vp_mul and vp_pow. Squarefreeness is then expressed directly in terms of these valuations. The setting is elementary number theory: squarefree integers are those whose prime factorization contains no repeated factors. The upstream Factorization file supplies the reusable interface over Mathlib's Nat.factorization that makes the squarefree statements lightweight and stable.

proof idea

This is a definition module, no proofs. It consists of thin wrappers and equivalences that restate Mathlib's Nat.squarefree_iff_factorization_le_one using the local vp notation, together with a handful of immediate corollaries for primes and coprime products.

why it matters in Recognition Science

The module supplies squarefree lemmas to the Primes namespace aggregator and to ArithmeticFunctions, where they support Möbius-function work. It fills the basic squarefree interface required for prime-number developments in the Recognition Science framework, enabling later arithmetic-function constructions without re-deriving factorization facts.

scope and limits

used by (2)

From the project-wide theorem graph. These declarations reference this one in their body.

depends on (1)

Lean names referenced from this declaration's body.

declarations in this module (8)