algs-field-mul-left-cancel-1
- Kind
- kernel-term
- Status
- checked
Supports: AlgS.Field (29 fields, inductive + constructor + recursor + 29 selectors), toCommRing, ofCommRing, IsTight, apart_irrefl, apart_left_congr, apart_right_congr, inv_unique, mul_left_cancel and AlgS.mul_neg_right all admit through the trusted Kernel::add_declaration gate with an empty Kernel::axiom_footprint, and every one was admitted on FIRST submission. The suite pins the field count at 29 and each of the six new fields by NAME at its index; it round-trips toCommRing(ofCommRing R ap ...) against R's own selectors field by field with def_eq (a wrong selector index type-checks and fails here); it requires AlgS.Field.apart of a constructed field to be the supplied relation and NOT the ring's own equivalence; and it carries three negative controls that must be REFUSED -- a proof of False offered as a proof of apart a a, Or.resolve_right where the congruence proof resolves the LEFT disjunct, and mulInvEx fed an apartness witness against one rather than zero -- each paired with the real declaration as a positive twin.
out=$(cargo test -p axeyum-lean-kernel --lib --release -- field_setoid vector_space --test-threads=4 2>&1) && test "$(printf "%s\n" "$out" | grep -cE 'test result: ok\. 18 passed; 0 failed')" -ge 1 Evidence notes
The pinned count is 18 (field_setoid 11 + vector_space 7). The load-bearing members are control_apart_left_congr_cannot_resolve_the_other_disjunct (without it apartCompat could be any Prop-valued field) and of_comm_ring_keeps_the_apartness_it_was_given (without it the record could collapse apart into equiv, which has the same type).