-
Notifications
You must be signed in to change notification settings - Fork 29
Open
Description
The following script showcases some unfortunate notation behaviors (on the current coq.dev and finmap.dev)
From mathcomp Require Import all_ssreflect finmap.
Open Scope fset_scope.
Lemma fsetIsep (T : choiceType) (A B : {fset T}) :
A `&` B = [fset x in A | x \in B].
(* Goal: A `&` B = [fset (x : T) | x in A & x \in B] *)
rewrite /fsetI.
(* Goal: [fset x | x in A & x \in B] = [fset x | x in A & x \in B] *)
Fail reflexivity.
apply/fsetP => x; rewrite !inE.
(* Goal: (x \in A) && (x \in B) = (x \in mem_fin (fset_finpred A)) && (x \in B) *)
rewrite /=.
(* Goal: (x \in A) && (x \in B) = (x \in [eta mem_seq (T:=T) A]) && (x \in B) *)
reflexivity.
Qed.Metadata
Metadata
Assignees
Labels
No labels