src/Sequents/Sequents.thy
changeset 7166 a4a870ec2e67
parent 7121 0e3d09451b7a
child 14765 bafb24c150c1
--- a/src/Sequents/Sequents.thy	Tue Aug 03 13:15:54 1999 +0200
+++ b/src/Sequents/Sequents.thy	Tue Aug 03 13:16:29 1999 +0200
@@ -3,7 +3,8 @@
     Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
     Copyright   1993  University of Cambridge
 
-Classical First-Order Sequent Calculus
+Basis theory for parsing and pretty-printing of sequences to be used in
+Sequent Calculi. 
 *)
 
 Sequents = Pure +
@@ -23,8 +24,8 @@
  seq'
 
 consts
- SeqO'         :: "[o,seq']=>seq'"
- Seq1'         :: "o=>seq'"
+ SeqO'         :: [o,seq']=>seq'
+ Seq1'         :: o=>seq'
     
 
 (* concrete syntax *)
@@ -34,25 +35,33 @@
 
 
 syntax
- SeqEmp         :: "seq"                                ("")
- SeqApp         :: "[seqobj,seqcont] => seq"            ("__")
+ SeqEmp         :: seq                                ("")
+ SeqApp         :: [seqobj,seqcont] => seq            ("__")
 
- SeqContEmp     :: "seqcont"                            ("")
- SeqContApp     :: "[seqobj,seqcont] => seqcont"        (",/ __")
+ SeqContEmp     :: seqcont                            ("")
+ SeqContApp     :: [seqobj,seqcont] => seqcont        (",/ __")
   
- SeqO           :: "o => seqobj"                        ("_")
- SeqId          :: "'a => seqobj"                       ("$_")
+ SeqO           :: o => seqobj                        ("_")
+ SeqId          :: 'a => seqobj                       ("$_")
 
 types
     
- single_seqe = "[seq,seqobj] => prop"
- single_seqi = "[seq'=>seq',seq'=>seq'] => prop"
- two_seqi = "[seq'=>seq', seq'=>seq'] => prop"
- two_seqe = "[seq, seq] => prop"
- three_seqi = "[seq'=>seq', seq'=>seq', seq'=>seq'] => prop"
- three_seqe = "[seq, seq, seq] => prop"
- four_seqi = "[seq'=>seq', seq'=>seq', seq'=>seq', seq'=>seq'] => prop"
- four_seqe = "[seq, seq, seq, seq] => prop"
+ single_seqe = [seq,seqobj] => prop
+ single_seqi = [seq'=>seq',seq'=>seq'] => prop
+ two_seqi    = [seq'=>seq', seq'=>seq'] => prop
+ two_seqe    = [seq, seq] => prop
+ three_seqi  = [seq'=>seq', seq'=>seq', seq'=>seq'] => prop
+ three_seqe  = [seq, seq, seq] => prop
+ four_seqi   = [seq'=>seq', seq'=>seq', seq'=>seq', seq'=>seq'] => prop
+ four_seqe   = [seq, seq, seq, seq] => prop
+
+
+ sequence_name = seq'=>seq'
+
+
+consts
+  (*Constant to allow definitions of SEQUENCES of formulas*)
+  "@Side"        :: seq=>(seq'=>seq')     ("<<(_)>>")
 
 end
 
@@ -146,3 +155,8 @@
 
 
 			 
+(** for the <<...>> notation **)
+  
+fun side_tr [s1] = seq_tr s1;
+
+val parse_translation = [("@Side", side_tr)];