IndisputableMonolith.Ethics.Virtues.NormalForm
This module defines the primitive generators for virtues and fixes them in a canonical order for use in normal-form representations. Researchers formalizing ethical structures or virtue aggregation would cite it to ensure consistent ordering of base elements. The module supplies only definitions and elementary list lemmas establishing membership and uniqueness.
claimLet $P$ denote the type of primitive generators. The canonical ordering is the list $L = $ primitiveOrderList such that primitive_mem_order$(p, L)$ holds for every $p : P$, primitiveOrderList_nodup asserts $L$ contains no duplicates, and pairList, rowMoves, toMoves, aggCoeff supply the associated move and coefficient structures.
background
The module sits inside the Ethics.Virtues.NormalForm hierarchy and imports only Mathlib for list and membership primitives. Primitive is introduced as the base type of generators; primitiveOrderList supplies the fixed sequence used by all downstream normal-form constructions. The sibling declarations primitive_mem_order, primitiveOrderList_nodup, MicroMove, NormalForm, pairList, pairList_mem, pairList_nodup, rowMoves, toMoves and aggCoeff together encode the ordered generators, their moves, and the aggregation coefficients required for canonical representation.
proof idea
This is a definition module, no proofs.
why it matters in Recognition Science
The module supplies the ordered primitive basis required by any NormalForm construction in the Ethics domain. It therefore feeds directly into theorems that aggregate virtues or reduce ethical expressions to canonical form. No parent theorem is listed in the used_by edges, indicating the module functions as an interface layer whose ordering convention is presupposed by later ethics results.
scope and limits
- Does not prove completeness of the primitive set.
- Does not define the full virtue theory or its axioms.
- Does not contain any aggregation or reduction theorems.
- Does not address non-canonical or dynamic orderings.
declarations in this module (31)
-
inductive
Primitive -
def
primitiveOrderList -
lemma
primitive_mem_order -
lemma
primitiveOrderList_nodup -
structure
MicroMove -
structure
NormalForm -
def
pairList -
lemma
pairList_mem -
lemma
pairList_nodup -
def
rowMoves -
def
toMoves -
def
aggCoeff -
theorem
ofMicroMoves_zero_outside -
theorem
ofMicroMoves_nontrivial -
def
ofMicroMoves -
theorem
rowMoves_pair -
theorem
rowMoves_mem_of_coeff_ne_zero -
theorem
aggCoeff_rowMoves_aux_theorem -
theorem
aggCoeff_rowMoves_aux_axiom -
lemma
aggCoeff_rowMoves_aux -
lemma
aggCoeff_rowMoves -
theorem
aggCoeff_rowMoves_of_ne -
lemma
aggCoeff_append -
theorem
aggCoeff_flatMap -
lemma
sumCoeffs_toMoves -
lemma
mem_toMoves_of_coeff_ne_zero -
lemma
pair_mem_toMoves_map -
theorem
of_toMoves -
theorem
pairList_eq_filtered_range_theorem -
theorem
pairList_eq_filtered_range_axiom -
lemma
pairList_eq_filtered_range