-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathalc-latex.maude
82 lines (55 loc) · 2.2 KB
/
alc-latex.maude
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
in alc-system.maude
mod LATEX is
inc LALC-SYSTEM-FULL .
inc CONVERSION .
op latex : Concept -> String .
op latex : Role -> String .
vars A B C : Concept .
var R : Role .
vars L1 L2 : List{Label} .
eq latex(CTRUE) = "/top" .
eq latex(CFALSE) = "/bot" .
eq latex( ~ A ) = "/neg (" + latex(A) + ")" .
eq latex( A | B ) = "(" + latex(A) + " /dlor " + latex(B) + ")" .
eq latex( A & B ) = "(" + latex(A) + " /dland " + latex(B) + ")" .
eq latex( ALL(R,A) ) = "/forall " + latex(R) + ". (" + latex(A) + ")" .
eq latex( EXIST(R,A) ) = "/exists " + latex(R) + ". (" + latex(A) + ")" .
op latex : List{Label} -> String .
eq latex(s(R, L1) L2) = latex(R) + "(" + latex(L1) + "), " + latex(L2) .
eq latex(R L1) = latex(R) + ", " + latex(L1) .
eq latex(nil) = "" .
op latex : LConcept -> String .
eq latex(< L1 | A | L2 >) = "/lf{" + latex(L1) + "}{" + latex(A) + "}{" + latex(L2) + "}" .
op latex : FzConcept -> String .
eq latex([ N:Nat , C:LConcept ]) = "/left[" + latex(C:LConcept) + "/right]^{" + string(N:Nat, 10) + "}" .
vars C1 C2 : Expression .
vars DELTA GAMMA : Set{Expression} .
op latex : Set{Expression} -> String .
eq latex((C1, DELTA)) = latex(C1) + ", " + latex(DELTA) .
eq latex(empty) = "" .
op latex : Sequent -> String .
eq latex((DELTA |- GAMMA)) = latex(DELTA) + " /fCenter " + latex(GAMMA) .
op latex : Proof -> String .
eq latex([ N0 from M by Q0 is S0 ] [ N1 from M by Q1 is S1 ] [ M from N by Q2 is S2 ] P) =
latex([ N0 from M by Q0 is S0 ] [ N1 from M by Q1 is S1 ] P) +
"\LeftLabel{" + latex(Q2) + "}" +
"\BinaryInf{" + latex(S2) + "}" .
eq latex([ N0 from M by Q0 is S0] [ M from N by Q1 is S1] P) =
latex(P) +
"\LeftLabel{" + latex(Q) + "}" +
" \UnaryInf{" + latex(S) + "}" [owise] .
endm
mod LATEX-TEST is
inc LATEX .
inc QID .
op conc : Qid -> AConcept .
op role : Qid -> ARole .
var Q : Qid .
eq latex(conc(Q)) = string(Q) .
eq latex(role(Q)) = string(Q) .
ops c1 c2 : -> Concept .
eq c1 = ALL(role('R), conc('A) & CTRUE) .
eq c2 = EXIST(role('R), conc('A) | CTRUE) .
op c3 : -> FzConcept .
eq c3 = [3, < role('R) role('S) | ALL(role('R), ~ conc('A)) | s(role('X), role('S) role('Q)) role('R) > ] .
endm