caledon-3.0.0.0: prelude/logic.ncc
---------------
-- searches ---
---------------
defn any : (A -> prop) -> prop
| is = [V : A][F : A -> prop] F V -> any F
defn openAny : [A][F : A -> prop] any F -> [V : A] F V -> prop
| openAnyDef = openAny A F (is V F FV) V FV
defn sopen : {A : prop }{F : A -> prop} [V : A] {FV : F V} (exists v : A . F v) -> prop
as ?\A : prop . ?\ F : A -> prop . \vt : A . ?\ FV : F vt . \an : (exists v : A . F v) . open A F an vt FV
fixity lambda free
defn free : [A : prop] (A -> prop) -> prop
as \a : prop . any { A = a }
-------------------
--- Constraints ---
-------------------
fixity none 5 =:=
defn =:= : Q -> Q -> prop
>| eq = (=:=) {Q = A} B B
-- searching for these is SLOW
fixity none 0 /\
defn /\ : prop -> prop -> prop
>| and = A -> B -> A /\ B
fixity none 0 \/
defn \/ : prop -> prop -> prop
| or1 = A -> A \/ B
| or2 = B -> A \/ B
fixity left 0 ==
-- currently we can't do any inference inside of definitional signatures
defn == : {q : prop} (q -> prop) -> q -> prop
as ?\q . \foo : q -> prop . \v : q . foo v