src/HOL/Nominal/nominal_inductive.ML
changeset 36960 01594f816e3a
parent 36692 54b64d4ad524
child 38549 d0385f2764d8
equal deleted inserted replaced
36959:f5417836dbea 36960:01594f816e3a
   670   end;
   670   end;
   671 
   671 
   672 
   672 
   673 (* outer syntax *)
   673 (* outer syntax *)
   674 
   674 
   675 local structure P = OuterParse and K = OuterKeyword in
   675 val _ = Keyword.keyword "avoids";
   676 
       
   677 val _ = OuterKeyword.keyword "avoids";
       
   678 
   676 
   679 val _ =
   677 val _ =
   680   OuterSyntax.local_theory_to_proof "nominal_inductive"
   678   Outer_Syntax.local_theory_to_proof "nominal_inductive"
   681     "prove equivariance and strong induction theorem for inductive predicate involving nominal datatypes" K.thy_goal
   679     "prove equivariance and strong induction theorem for inductive predicate involving nominal datatypes"
   682     (P.xname -- Scan.optional (P.$$$ "avoids" |-- P.and_list1 (P.name --
   680     Keyword.thy_goal
   683       (P.$$$ ":" |-- Scan.repeat1 P.name))) [] >> (fn (name, avoids) =>
   681     (Parse.xname -- Scan.optional (Parse.$$$ "avoids" |-- Parse.and_list1 (Parse.name --
       
   682       (Parse.$$$ ":" |-- Scan.repeat1 Parse.name))) [] >> (fn (name, avoids) =>
   684         prove_strong_ind name avoids));
   683         prove_strong_ind name avoids));
   685 
   684 
   686 val _ =
   685 val _ =
   687   OuterSyntax.local_theory "equivariance"
   686   Outer_Syntax.local_theory "equivariance"
   688     "prove equivariance for inductive predicate involving nominal datatypes" K.thy_decl
   687     "prove equivariance for inductive predicate involving nominal datatypes" Keyword.thy_decl
   689     (P.xname -- Scan.optional (P.$$$ "[" |-- P.list1 P.name --| P.$$$ "]") [] >>
   688     (Parse.xname -- Scan.optional (Parse.$$$ "[" |-- Parse.list1 Parse.name --| Parse.$$$ "]") [] >>
   690       (fn (name, atoms) => prove_eqvt name atoms));
   689       (fn (name, atoms) => prove_eqvt name atoms));
   691 
   690 
   692 end;
       
   693 
       
   694 end
   691 end