]> matita.cs.unibo.it Git - helm.git/commitdiff
1) Notation for dependent pairs differentiated from that for sigma types.
authorClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 14 Dec 2011 12:18:07 +0000 (12:18 +0000)
committerClaudio Sacerdoti Coen <claudio.sacerdoticoen@unibo.it>
Wed, 14 Dec 2011 12:18:07 +0000 (12:18 +0000)
2) Russell now works directly on mk_Sig/pi1

matita/matita/lib/basics/core_notation.ma
matita/matita/lib/basics/russell.ma
matita/matita/lib/basics/types.ma

index cdb49737164e1264fc8f67bf74f683f107abda6d..4eae6c6c34467f679a90cafa4f8d6fe15e601798 100644 (file)
@@ -52,6 +52,37 @@ notation > "\Sigma list1 ident x sep , opt (: T). term 19 Px"
           @{ ${ fold right @{$Px} rec acc @{'sigma (λ${ident x}.$acc)} } }
        }.
 
+notation "hvbox(« term 19 a, break term 19 b»)" 
+with precedence 90 for @{ 'dp $a $b }.
+
+(* dependent pairs (i.e. Sigma with predicate in Type[0])  ********************)
+
+notation < "hvbox(𝚺 ident i : ty break . p)"
+ left associative with precedence 20
+for @{'dpair (\lambda ${ident i} : $ty. $p) }.
+
+notation < "hvbox(𝚺 ident i break . p)"
+ with precedence 20
+for @{'dpair (\lambda ${ident i}. $p) }.
+
+(*
+notation < "hvbox(𝚺 ident i opt (: ty) break . p)"
+  right associative with precedence 20
+for @{ 'dpair ${default
+  @{\lambda ${ident i} : $ty. $p}
+  @{\lambda ${ident i} . $p}}}.
+*)
+
+notation > "𝚺 list1 ident x sep , opt (: T). term 19 Px"
+  with precedence 20
+  for ${ default
+          @{ ${ fold right @{$Px} rec acc @{'dpair (λ${ident x}:$T.$acc)} } }
+          @{ ${ fold right @{$Px} rec acc @{'dpair (λ${ident x}.$acc)} } }
+       }.
+
+notation "hvbox(❬ term 19 a, break term 19 b❭)" 
+with precedence 90 for @{ 'mk_DPair $a $b }.
+
 (* equality, conguence ******************************************************)
 
 notation > "hvbox(a break = b)" 
@@ -284,4 +315,4 @@ notation > "⊩ " with precedence 60 for @{'Vdash ?}.
 notation "(⊩ \sub term 90 c) " with precedence 60 for @{'Vdash $c}.
 
 notation < "maction (mstyle color #ff0000 (­…­)) (t)" 
-non associative with precedence 90 for @{'hide $t}.
\ No newline at end of file
+non associative with precedence 90 for @{'hide $t}.
index 71cc59fcd7e68ad0839e1993413b9d8e18e2dd15..0769ca59fa2f82db1ca3ab2d012bcce9448d5aa3 100644 (file)
@@ -12,5 +12,5 @@
 include "basics/jmeq.ma".
 include "basics/types.ma".
 
-coercion inject nocomposites: ∀A.∀P:A → Prop.∀a.∀p:P a.Σx:A.P x ≝ λA,P,a,p. mk_Sig … a p on a:? to Σx:?.?.
-coercion eject nocomposites: ∀A.∀P:A → Prop.∀c:Σx:A.P x.A ≝ λA,P,c. pi1 … c on _c:Σx:?.? to ?.
+coercion inject nocomposites: ∀A.∀P:A → Prop.∀a.∀p:P a.Sig A P ≝ mk_Sig on a:? to Sig ??.
+coercion eject nocomposites: ∀A.∀P:A → Prop.∀c:Sig A P.A ≝ pi1 on _c:Sig ?? to ?.
index 1d38830481c02fa51a4121918f8941fbeaee8285..d093202b1c340cfe537b06ed9530c32d1dd76c0d 100644 (file)
@@ -61,12 +61,9 @@ record DPair (A:Type[0]) (f:A→Type[0]) : Type[0] ≝ {
   ; dpi2: f dpi1
   }.
 
-interpretation "DPair" 'sigma x = (DPair ? x).
+interpretation "DPair" 'dpair x = (DPair ? x).
 
-notation "hvbox(« term 19 a, break term 19 b»)" 
-with precedence 90 for @{ 'dp $a $b }.
-
-interpretation "mk_DPair" 'dp x y = (mk_DPair ?? x y).
+interpretation "mk_DPair" 'mk_DPair x y = (mk_DPair ?? x y).
 
 (* sigma *)
 record Sig (A:Type[0]) (f:A→Prop) : Type[0] ≝ {