gmap.v 1.52 KiB
From stdpp Require Import gmap.
Goal {[1; 2; 3]} =@{gset nat} ∅.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
Abort.
Goal elements (C := gset nat) {[1; 2; 3]} = [].
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
Abort.
Goal
{[1; 2; 3]} ∖ {[ 1 ]} ∪ {[ 4 ]} ∩ {[ 10 ]} =@{gset nat} ∅ ∖ {[ 2 ]}.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
Abort.
Goal 1 ∈ dom (M := gmap nat nat) (<[ 1 := 2 ]> ∅).
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
Abort.
Goal bool_decide (∅ =@{gset nat} {[ 1; 2; 3 ]}) = false.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
reflexivity.
Qed.
Goal bool_decide (∅ ≡@{gset nat} {[ 1; 2; 3 ]}) = false.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
reflexivity.
Qed.
Goal bool_decide (1 ∈@{gset nat} {[ 1; 2; 3 ]}) = true.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
reflexivity.
Qed.
Goal bool_decide (∅ ##@{gset nat} {[ 1; 2; 3 ]}) = true.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
reflexivity.
Qed.
Goal bool_decide (∅ ⊆@{gset nat} {[ 1; 2; 3 ]}) = true.
Proof.
Fail progress simpl.
Fail progress cbn.
Show.
reflexivity.
Qed.
Lemma should_not_unfold (m1 m2 : gmap nat nat) k x :
dom m1 = dom m2 →
<[k:=x]> m1 = <[k:=x]> m2 →
True.
Proof.
(** Make sure that [injection]/[simplify_eq] does not unfold constructs on
[gmap] and [gset]. *)
intros Hdom Hinsert.
Fail injection Hdom.
Fail injection Hinsert.
Fail progress simplify_eq.
done.
Qed.