English
The block-stabilizer order isomorphism is implemented by toFun and invFun between the block-side and stabilizer-side; it preserves the order relation.
Русский
Порядковый изоморфизм между сторонами блока и стабилизатора сохраняет порядок.
LaTeX
$$Equiv between blocks and stabilizers preserving order$$
Lean4
/-- Order equivalence between blocks in `X` containing a point `a`
and subgroups of `G` containing the stabilizer of `a` (Wielandt, th. 7.5) -/
@[to_additive /-- Order equivalence between blocks in `X` containing a point `a`
and subgroups of `G` containing the stabilizer of `a` (Wielandt, th. 7.5) -/
]
def block_stabilizerOrderIso [htGX : IsPretransitive G X] (a : X) :
{ B : Set X // a ∈ B ∧ IsBlock G B } ≃o Set.Ici (stabilizer G a)
where
toFun := fun ⟨B, ha, hB⟩ => ⟨stabilizer G B, hB.stabilizer_le ha⟩
invFun := fun ⟨H, hH⟩ => ⟨MulAction.orbit H a, MulAction.mem_orbit_self a, IsBlock.of_orbit hH⟩
left_inv := fun ⟨_, ha, hB⟩ => (id (propext Subtype.mk_eq_mk)).mpr (hB.orbit_stabilizer_eq ha)
right_inv := fun ⟨_, hH⟩ => (id (propext Subtype.mk_eq_mk)).mpr (stabilizer_orbit_eq hH)
map_rel_iff' := by
rintro ⟨B, ha, hB⟩; rintro ⟨B', ha', hB'⟩
simp only [Equiv.coe_fn_mk, Subtype.mk_le_mk, Set.le_eq_subset]
constructor
· rintro hBB' b hb
obtain ⟨k, rfl⟩ := htGX.exists_smul_eq a b
suffices k ∈ stabilizer G B' by exact this.symm ▸ (Set.smul_mem_smul_set ha')
exact hBB' (hB.smul_eq_of_mem ha hb)
· intro hBB' g hgB
apply hB'.smul_eq_of_mem ha'
exact hBB' <| hgB.symm ▸ (Set.smul_mem_smul_set ha)