85 val revert_abbrev: string -> string -> theory -> theory |
85 val revert_abbrev: string -> string -> theory -> theory |
86 val add_const_constraint: string * typ option -> theory -> theory |
86 val add_const_constraint: string * typ option -> theory -> theory |
87 val primitive_class: binding * class list -> theory -> theory |
87 val primitive_class: binding * class list -> theory -> theory |
88 val primitive_classrel: class * class -> theory -> theory |
88 val primitive_classrel: class * class -> theory -> theory |
89 val primitive_arity: arity -> theory -> theory |
89 val primitive_arity: arity -> theory -> theory |
90 val add_trfuns: |
90 val parse_ast_translation: |
91 (string * (Ast.ast list -> Ast.ast)) list * |
|
92 (string * (term list -> term)) list * |
|
93 (string * (term list -> term)) list * |
|
94 (string * (Ast.ast list -> Ast.ast)) list -> theory -> theory |
|
95 val add_trfunsT: (string * (typ -> term list -> term)) list -> theory -> theory |
|
96 val add_advanced_trfuns: |
|
97 (string * (Proof.context -> Ast.ast list -> Ast.ast)) list * |
|
98 (string * (Proof.context -> term list -> term)) list * |
|
99 (string * (Proof.context -> term list -> term)) list * |
|
100 (string * (Proof.context -> Ast.ast list -> Ast.ast)) list -> theory -> theory |
91 (string * (Proof.context -> Ast.ast list -> Ast.ast)) list -> theory -> theory |
101 val add_advanced_trfunsT: |
92 val parse_translation: |
|
93 (string * (Proof.context -> term list -> term)) list -> theory -> theory |
|
94 val print_translation: |
|
95 (string * (Proof.context -> term list -> term)) list -> theory -> theory |
|
96 val typed_print_translation: |
102 (string * (Proof.context -> typ -> term list -> term)) list -> theory -> theory |
97 (string * (Proof.context -> typ -> term list -> term)) list -> theory -> theory |
|
98 val print_ast_translation: |
|
99 (string * (Proof.context -> Ast.ast list -> Ast.ast)) list -> theory -> theory |
103 val add_trrules: Ast.ast Syntax.trrule list -> theory -> theory |
100 val add_trrules: Ast.ast Syntax.trrule list -> theory -> theory |
104 val del_trrules: Ast.ast Syntax.trrule list -> theory -> theory |
101 val del_trrules: Ast.ast Syntax.trrule list -> theory -> theory |
105 val new_group: theory -> theory |
102 val new_group: theory -> theory |
106 val reset_group: theory -> theory |
103 val reset_group: theory -> theory |
107 val add_path: string -> theory -> theory |
104 val add_path: string -> theory -> theory |
464 |
461 |
465 local |
462 local |
466 |
463 |
467 fun mk trs = map Syntax_Ext.mk_trfun trs; |
464 fun mk trs = map Syntax_Ext.mk_trfun trs; |
468 |
465 |
469 fun gen_add_trfuns ext non_typed (atrs, trs, tr's, atr's) = |
|
470 map_syn (ext (mk atrs, mk trs, mk (map (apsnd non_typed) tr's), mk atr's)); |
|
471 |
|
472 fun gen_add_trfunsT ext tr's = map_syn (ext ([], [], mk tr's, [])); |
|
473 |
|
474 in |
466 in |
475 |
467 |
476 val add_trfuns = gen_add_trfuns Syntax.update_trfuns Syntax_Trans.non_typed_tr'; |
468 fun parse_ast_translation atrs = map_syn (Syntax.update_trfuns (mk atrs, [], [], [])); |
477 val add_trfunsT = gen_add_trfunsT Syntax.update_trfuns; |
469 fun parse_translation trs = map_syn (Syntax.update_trfuns ([], mk trs, [], [])); |
478 val add_advanced_trfuns = gen_add_trfuns Syntax.update_advanced_trfuns Syntax_Trans.non_typed_tr''; |
470 fun print_translation tr's = |
479 val add_advanced_trfunsT = gen_add_trfunsT Syntax.update_advanced_trfuns; |
471 map_syn (Syntax.update_trfuns ([], [], mk (map (apsnd Syntax_Trans.non_typed_tr') tr's), [])); |
|
472 fun typed_print_translation tr's = map_syn (Syntax.update_trfuns ([], [], mk tr's, [])); |
|
473 fun print_ast_translation atr's = map_syn (Syntax.update_trfuns ([], [], [], mk atr's)); |
480 |
474 |
481 end; |
475 end; |
482 |
476 |
483 |
477 |
484 (* translation rules *) |
478 (* translation rules *) |