69 (Syntax.mark_const "Appt", [proofT, aT] ---> proofT, Mixfix ("(1_ \\<cdot>/ _)", [4, 5], 4)), |
69 (Syntax.mark_const "Appt", [proofT, aT] ---> proofT, Mixfix ("(1_ \\<cdot>/ _)", [4, 5], 4)), |
70 (Syntax.mark_const "AppP", [proofT, proofT] ---> proofT, Mixfix ("(1_ \\<bullet>/ _)", [4, 5], 4))] |
70 (Syntax.mark_const "AppP", [proofT, proofT] ---> proofT, Mixfix ("(1_ \\<bullet>/ _)", [4, 5], 4))] |
71 |> Sign.add_modesyntax_i ("latex", false) |
71 |> Sign.add_modesyntax_i ("latex", false) |
72 [("_Lam", [paramsT, proofT] ---> proofT, Mixfix ("(1\\<^bold>\\<lambda>_./ _)", [0, 3], 3))] |
72 [("_Lam", [paramsT, proofT] ---> proofT, Mixfix ("(1\\<^bold>\\<lambda>_./ _)", [0, 3], 3))] |
73 |> Sign.add_trrules (map Syntax.Parse_Print_Rule |
73 |> Sign.add_trrules (map Syntax.Parse_Print_Rule |
74 [(Syntax.mk_appl (Constant "_Lam") |
74 [(Ast.mk_appl (Ast.Constant "_Lam") |
75 [Syntax.mk_appl (Constant "_Lam0") [Variable "l", Variable "m"], Variable "A"], |
75 [Ast.mk_appl (Ast.Constant "_Lam0") |
76 Syntax.mk_appl (Constant "_Lam") |
76 [Ast.Variable "l", Ast.Variable "m"], Ast.Variable "A"], |
77 [Variable "l", Syntax.mk_appl (Constant "_Lam") [Variable "m", Variable "A"]]), |
77 Ast.mk_appl (Ast.Constant "_Lam") |
78 (Syntax.mk_appl (Constant "_Lam") |
78 [Ast.Variable "l", |
79 [Syntax.mk_appl (Constant "_Lam1") [Variable "x", Variable "A"], Variable "B"], |
79 Ast.mk_appl (Ast.Constant "_Lam") [Ast.Variable "m", Ast.Variable "A"]]), |
80 Syntax.mk_appl (Constant (Syntax.mark_const "AbsP")) [Variable "A", |
80 (Ast.mk_appl (Ast.Constant "_Lam") |
81 (Syntax.mk_appl (Constant "_abs") [Variable "x", Variable "B"])]), |
81 [Ast.mk_appl (Ast.Constant "_Lam1") |
82 (Syntax.mk_appl (Constant "_Lam") [Variable "x", Variable "A"], |
82 [Ast.Variable "x", Ast.Variable "A"], Ast.Variable "B"], |
83 Syntax.mk_appl (Constant (Syntax.mark_const "Abst")) |
83 Ast.mk_appl (Ast.Constant (Syntax.mark_const "AbsP")) [Ast.Variable "A", |
84 [(Syntax.mk_appl (Constant "_abs") [Variable "x", Variable "A"])])]); |
84 (Ast.mk_appl (Ast.Constant "_abs") [Ast.Variable "x", Ast.Variable "B"])]), |
|
85 (Ast.mk_appl (Ast.Constant "_Lam") [Ast.Variable "x", Ast.Variable "A"], |
|
86 Ast.mk_appl (Ast.Constant (Syntax.mark_const "Abst")) |
|
87 [(Ast.mk_appl (Ast.Constant "_abs") [Ast.Variable "x", Ast.Variable "A"])])]); |
85 |
88 |
86 |
89 |
87 (**** translation between proof terms and pure terms ****) |
90 (**** translation between proof terms and pure terms ****) |
88 |
91 |
89 fun proof_of_term thy ty = |
92 fun proof_of_term thy ty = |