Identifier
F:list-perm-symm
Proof route
kernel-lean
External status
proved
Axiom footprint
Empty

Recorded description

For any two lists l1, l2 over Nat, if List.Perm l1 l2 computes to true then List.Perm l2 l1 also computes to true.

Formal statement
theorem List.perm_symm : ((x0 : List.{0} AxNat) -> ((x1 : List.{0} AxNat) -> ((x2 : Eq.{1} Bool (List.Perm x0 x1) Bool.true) -> Eq.{1} Bool (List.Perm x1 x0) Bool.true)))

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. Mathlib v4.30 source propositio A bounded Boolean universal ref Current fact
2 direct dependencies 0 direct dependents

Evidence

kernel-list-perm-symm

Kind
kernel-term
Status
checked

Supports: List.perm_symm is admitted by the trusted kernel gate with the type recorded in formal.statement.

Checker command
test "$(cargo run -q --release -p axeyum-lean-kernel --example list_theorem_inventory -- List.perm_symm 2>/dev/null | grep -Fc '((x0 : List.{0} AxNat) -> ((x1 : List.{0} AxNat) -> ((x2 : Eq.{1} Bool (List.Perm x0 x1) Bool.true) -> Eq.{1} Bool (List.Perm x1 x0) Bool.true)))')" -ge 1
Evidence notes

The pattern is the FULL admitted type (rendered by Kernel::render_lean via list_theorem_inventory), not the theorem's name -- a drifted statement would fail this check.

footprint-list-perm-symm

Kind
instance-pin
Status
checked

Supports: axiom_footprint: [] -- read from Kernel::axiom_footprint for this declaration, not from a maintained list

Checker command
cargo test -q --release -p axeyum-lean-kernel --lib -- list_prelude::perm::perm_tests::the_perm_theorems_declare_no_axioms --test-threads=1
Evidence notes

Asserts Kernel::axiom_footprint(name).is_empty() for this declaration, read directly from the kernel rather than asserted from a list.

evaluation-list-perm-symm

Kind
instance-pin
Status
checked

Supports: The List/Nat operations this statement is about COMPUTE the intended values, with negative controls -- the kernel cannot tell a Definition is wrong.

Checker command
cargo test -q --release -p axeyum-lean-kernel --lib -- list_prelude:: --test-threads=4
Evidence notes

The list_prelude:: sweep (list_prelude_tests.rs, bridge_tests.rs, perm_tests.rs) reduces List/Nat.Multiset operations to concrete numerals or nil/cons skeletons at tiny discriminating arguments and pairs positives with negative controls.

Provenance

{
  "date": "2026-09-03",
  "established_by": "axeyum-lean-kernel build_list_perm",
  "source": "theorem name and canonical type read directly via list_theorem_inventory, which prints render_lean of the admitted type; declared by list_prelude/perm.rs (lane list-carrier-2, ADR-1583 amending ADR-1579)."
}