2015-03-25 22:53:50 +00:00
|
|
|
|
import data.set
|
2015-10-13 22:39:03 +00:00
|
|
|
|
open set nat
|
2015-03-25 22:53:50 +00:00
|
|
|
|
|
|
|
|
|
section
|
|
|
|
|
variable {A : Type}
|
|
|
|
|
|
|
|
|
|
definition set_of (P : A → Prop) : set A := P
|
|
|
|
|
|
|
|
|
|
notation `{` binders `|` r:(scoped:1 P, set_of P) `}` := r
|
|
|
|
|
|
|
|
|
|
definition insert (a : A) (s : set A) : set A := {x : A | x = a ∨ x ∈ s}
|
|
|
|
|
|
|
|
|
|
notation `⦃` s:(foldr `,` (a t, insert a t) ∅) `⦄` := s
|
|
|
|
|
notation `{` `{` s:(foldr `,` (a t, insert a t) ∅) `}` `}` := s
|
|
|
|
|
|
2015-10-13 22:39:03 +00:00
|
|
|
|
check ⦃(1:nat), 2, 3⦄
|
|
|
|
|
check {{(1:nat), 2, 3}}
|
2015-03-25 22:53:50 +00:00
|
|
|
|
|
|
|
|
|
definition foo {X : Type} {{ x : X }} : X := x
|
|
|
|
|
end
|