Zulip Chat Archive
Stream: maths
Topic: mul_actions
Antoine Chambert-Loir (Nov 29 2021 at 18:55):
Given an action of a group G
on a set X
, one can define related actions such as the product X × X
and the complement of the diagonal { x : X × X | x.1 ≠ x.2 }
.
It starts nicely, but then I can't manage to say that the obtained action has given properties.
It seems I have to define an instance
, but I am told by Lean that sub_mul_action
is not a class.
import group_theory.group_action.basic
import group_theory.group_action.prod
import group_theory.group_action.sub_mul_action
variables (G : Type*) [group G] (X : Type*) [mul_action G X]
open equiv.perm equiv
variables {G} {X}
def square_minus_diag (G : Type*) [group G] (X : Type*) [mul_action G X] :
sub_mul_action G (X × X) :=
{ carrier := { x : X × X | x.1 ≠ x.2 },
smul_mem' := λ g x hx,
begin
rw set.mem_set_of_eq at hx ⊢,
simp only [hx, prod.smul_snd, prod.smul_fst, ne.def, smul_left_cancel_iff, not_false_iff],
end, }
-- doesn't type
example [nontrivial X]: mul_action.is_pretransitive G (square_minus_diag.mul_action) :=
begin
sorry,
end
Adam Topaz (Nov 29 2021 at 19:00):
Does deleting the last .mul_action
fix it?
Adam Topaz (Nov 29 2021 at 19:00):
Maybe after adding additional variables G
and X
?
Antoine Chambert-Loir (Nov 29 2021 at 19:02):
No, I get zigouigouis (twiddles) under mul_action
and under square_minus_diag
.
Adam Topaz (Nov 29 2021 at 19:04):
Hmm... I'm on my phone so I can't be more helpful, but I try it out in a few mins on the computer
Johan Commelin (Nov 29 2021 at 19:06):
I would expect that you need to write
example [nontrivial X]: mul_action.is_pretransitive G (square_minus_diag G X) :=
begin
sorry,
end
Johan Commelin (Nov 29 2021 at 19:06):
What is the exact error that you get?
Antoine Chambert-Loir (Nov 29 2021 at 19:09):
It was :
invalid field notation, type is not of the form (C ...) where C is a constant
square_minus_diag
has type
Π (G : Type ?) [_inst_3 : group G] (X : Type ?) [_inst_4 : mul_action G X], sub_mul_action G (X × X)
Johan Commelin (Nov 29 2021 at 20:13):
@Antoine Chambert-Loir Aha, but do I understand correctly that my suggestion works?
Johan Commelin (Nov 29 2021 at 20:14):
The error tells you that square_minus_diag
expects explicit arguments G
and X
.
Antoine Chambert-Loir (Nov 29 2021 at 20:20):
I never understand those Type ?
messages. I thought it meant Lean couldn't find the type, but apparently that's not exactly that.
Kevin Buzzard (Nov 29 2021 at 20:23):
The error means "you types square_minus_diag.mul_action
, but the thing is, square_minus_diag
is a function which wants to eat a group G
and a G-module X
, so in particular its type is a function type, so square_minus_diag.mul_action
means something like function.mul_action square_minus_diag
which makes no sense because function.mul_action
doesn't exist"
Kevin Buzzard (Nov 29 2021 at 20:25):
PS I love the "pre-transitive" name! It's like pre-primes being 1 or prime.
Antoine Chambert-Loir (Nov 29 2021 at 20:42):
I am not responsible for pretransitive !
One comment in the #10253 is that primitive should be turned to preprimitive, removing the nonempty hypothesis.
Last updated: Dec 20 2023 at 11:08 UTC