Last change
on this file since 1681 was
1640,
checked in by tranquil, 9 years ago

 finished fork of semantics.ma
 unification of Errors under the monad notations brings problems in type checking when res and IO are used together. Needs a lot of annotations, and may break the prefork material

File size:
756 bytes

Line  

1  include "basics/relations.ma". 

2  

3  definition proper ≝ λA,B.λrelA : relation A.λrelB : relation B. 

4  λf,g : A → B. 

5  ∀a,a' : A.relA a a' → relB (f a) (g a'). 

6  

7  definition proper_contra ≝ λA,B.λrelA : relation A.λrelB : relation B. 

8  λf,g : A → B. 

9  ∀a,a' : A.relA a' a → relB (f a) (g a'). 

10  

11  

12  interpretation "proper" 'proper r s = (proper ? ? r s). 

13  interpretation "proper contravariant" 'proper_contra r s = (proper_contra ? ? r s). 

14  

15  notation "r ++> s" right associative with precedence 51 for 

16  @{'proper $r $s}. 

17  

18  notation "r +> s" right associative with precedence 51 for 

19  @{'proper_contra $r $s}. 

20  

21  (* avoid notation from kikcing in in outputm to avoid things like X ⊨ Prod *) 

22  notation > "f ⊨ p " with precedence 50 for @{$p $f $f}. 

Note: See
TracBrowser
for help on using the repository browser.