kernel-Nat.Hall.isMatching_union
- Kind
- kernel-term
- Status
- checked
Supports: two matchings with disjoint images glue into a matching on the union of their index sets
cargo test --release -p axeyum-lean-kernel --lib nat_prelude::hall_tests -- --test-threads=4 Evidence notes
ADR-1614 expected Nat.Finset.card_le_of_injOn to be the tool. It is not: that lemma COUNTS an injection, and what is needed here is that the glued function IS one. The content is four branches, one per pair of decisions on `memB s1 i` and `memB s1 j`; the two diagonal ones are each matching's own injectivity and the two mixed ones are refuted by the disjointness hypothesis at exactly that pair, reached through memB_union_elim ('in the union but not in s1' gives 'in s2'). Requiring disjoint INDEX sets would have cost every consumer an obligation the argument never uses.