@stevenvo780/st-lang 4.12.0 → 4.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/reasoning/datalog/index.d.ts +131 -0
- package/dist/reasoning/datalog/index.d.ts.map +1 -0
- package/dist/reasoning/datalog/index.js +706 -0
- package/dist/reasoning/datalog/index.js.map +1 -0
- package/dist/reasoning/galois-fields/index.d.ts +29 -0
- package/dist/reasoning/galois-fields/index.d.ts.map +1 -0
- package/dist/reasoning/galois-fields/index.js +522 -0
- package/dist/reasoning/galois-fields/index.js.map +1 -0
- package/dist/reasoning/hoare-logic/index.d.ts +130 -0
- package/dist/reasoning/hoare-logic/index.d.ts.map +1 -0
- package/dist/reasoning/hoare-logic/index.js +535 -0
- package/dist/reasoning/hoare-logic/index.js.map +1 -0
- package/dist/reasoning/lattice/index.d.ts +165 -0
- package/dist/reasoning/lattice/index.d.ts.map +1 -0
- package/dist/reasoning/lattice/index.js +587 -0
- package/dist/reasoning/lattice/index.js.map +1 -0
- package/dist/reasoning/model-checking/index.d.ts +113 -0
- package/dist/reasoning/model-checking/index.d.ts.map +1 -0
- package/dist/reasoning/model-checking/index.js +786 -0
- package/dist/reasoning/model-checking/index.js.map +1 -0
- package/dist/reasoning/polynomial-ring/index.d.ts +30 -0
- package/dist/reasoning/polynomial-ring/index.d.ts.map +1 -0
- package/dist/reasoning/polynomial-ring/index.js +797 -0
- package/dist/reasoning/polynomial-ring/index.js.map +1 -0
- package/dist/reasoning/separation-logic/index.d.ts +190 -0
- package/dist/reasoning/separation-logic/index.d.ts.map +1 -0
- package/dist/reasoning/separation-logic/index.js +758 -0
- package/dist/reasoning/separation-logic/index.js.map +1 -0
- package/dist/reasoning/universal-algebra/index.d.ts +196 -0
- package/dist/reasoning/universal-algebra/index.d.ts.map +1 -0
- package/dist/reasoning/universal-algebra/index.js +865 -0
- package/dist/reasoning/universal-algebra/index.js.map +1 -0
- package/dist/tests/reasoning/datalog/datalog.test.d.ts +2 -0
- package/dist/tests/reasoning/datalog/datalog.test.d.ts.map +1 -0
- package/dist/tests/reasoning/datalog/datalog.test.js +333 -0
- package/dist/tests/reasoning/datalog/datalog.test.js.map +1 -0
- package/dist/tests/reasoning/galois-fields/galois-fields.test.d.ts +2 -0
- package/dist/tests/reasoning/galois-fields/galois-fields.test.d.ts.map +1 -0
- package/dist/tests/reasoning/galois-fields/galois-fields.test.js +226 -0
- package/dist/tests/reasoning/galois-fields/galois-fields.test.js.map +1 -0
- package/dist/tests/reasoning/hoare-logic/hoare-logic.test.d.ts +2 -0
- package/dist/tests/reasoning/hoare-logic/hoare-logic.test.d.ts.map +1 -0
- package/dist/tests/reasoning/hoare-logic/hoare-logic.test.js +340 -0
- package/dist/tests/reasoning/hoare-logic/hoare-logic.test.js.map +1 -0
- package/dist/tests/reasoning/lattice/lattice.test.d.ts +2 -0
- package/dist/tests/reasoning/lattice/lattice.test.d.ts.map +1 -0
- package/dist/tests/reasoning/lattice/lattice.test.js +238 -0
- package/dist/tests/reasoning/lattice/lattice.test.js.map +1 -0
- package/dist/tests/reasoning/model-checking/model-checking.test.d.ts +2 -0
- package/dist/tests/reasoning/model-checking/model-checking.test.d.ts.map +1 -0
- package/dist/tests/reasoning/model-checking/model-checking.test.js +222 -0
- package/dist/tests/reasoning/model-checking/model-checking.test.js.map +1 -0
- package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.d.ts +2 -0
- package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.d.ts.map +1 -0
- package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.js +230 -0
- package/dist/tests/reasoning/polynomial-ring/polynomial-ring.test.js.map +1 -0
- package/dist/tests/reasoning/separation-logic/separation-logic.test.d.ts +2 -0
- package/dist/tests/reasoning/separation-logic/separation-logic.test.d.ts.map +1 -0
- package/dist/tests/reasoning/separation-logic/separation-logic.test.js +311 -0
- package/dist/tests/reasoning/separation-logic/separation-logic.test.js.map +1 -0
- package/dist/tests/reasoning/universal-algebra/universal-algebra.test.d.ts +2 -0
- package/dist/tests/reasoning/universal-algebra/universal-algebra.test.d.ts.map +1 -0
- package/dist/tests/reasoning/universal-algebra/universal-algebra.test.js +289 -0
- package/dist/tests/reasoning/universal-algebra/universal-algebra.test.js.map +1 -0
- package/dist/tests/type-theory/lambda-cube/lambda-cube.test.d.ts +2 -0
- package/dist/tests/type-theory/lambda-cube/lambda-cube.test.d.ts.map +1 -0
- package/dist/tests/type-theory/lambda-cube/lambda-cube.test.js +266 -0
- package/dist/tests/type-theory/lambda-cube/lambda-cube.test.js.map +1 -0
- package/dist/type-theory/lambda-cube/erase.d.ts +26 -0
- package/dist/type-theory/lambda-cube/erase.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/erase.js +68 -0
- package/dist/type-theory/lambda-cube/erase.js.map +1 -0
- package/dist/type-theory/lambda-cube/examples.d.ts +59 -0
- package/dist/type-theory/lambda-cube/examples.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/examples.js +110 -0
- package/dist/type-theory/lambda-cube/examples.js.map +1 -0
- package/dist/type-theory/lambda-cube/index.d.ts +11 -0
- package/dist/type-theory/lambda-cube/index.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/index.js +64 -0
- package/dist/type-theory/lambda-cube/index.js.map +1 -0
- package/dist/type-theory/lambda-cube/normalize.d.ts +17 -0
- package/dist/type-theory/lambda-cube/normalize.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/normalize.js +134 -0
- package/dist/type-theory/lambda-cube/normalize.js.map +1 -0
- package/dist/type-theory/lambda-cube/rules.d.ts +26 -0
- package/dist/type-theory/lambda-cube/rules.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/rules.js +67 -0
- package/dist/type-theory/lambda-cube/rules.js.map +1 -0
- package/dist/type-theory/lambda-cube/typecheck.d.ts +20 -0
- package/dist/type-theory/lambda-cube/typecheck.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/typecheck.js +168 -0
- package/dist/type-theory/lambda-cube/typecheck.js.map +1 -0
- package/dist/type-theory/lambda-cube/types.d.ts +40 -0
- package/dist/type-theory/lambda-cube/types.d.ts.map +1 -0
- package/dist/type-theory/lambda-cube/types.js +192 -0
- package/dist/type-theory/lambda-cube/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/hoare-logic/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Finite lattice theory.
|
|
3
|
+
*
|
|
4
|
+
* A lattice is a poset (P, ≤) in which every pair of elements has both
|
|
5
|
+
* a least upper bound (join, ∨) and a greatest lower bound (meet, ∧).
|
|
6
|
+
*
|
|
7
|
+
* This module focuses on **finite** lattices: given the carrier set and
|
|
8
|
+
* a `leq` predicate, we derive join/meet exhaustively (O(n^3) per pair
|
|
9
|
+
* via direct search). That is enough for the structural checks
|
|
10
|
+
* downstream — distributivity, modularity, complementation, Heyting
|
|
11
|
+
* implication — which are themselves O(n^3) or O(n^4) and not meant
|
|
12
|
+
* for n ≫ 100.
|
|
13
|
+
*
|
|
14
|
+
* Notable theorems used:
|
|
15
|
+
* - Dedekind: a lattice is **modular** iff it has no sublattice
|
|
16
|
+
* isomorphic to the pentagon N5.
|
|
17
|
+
* - Birkhoff: a lattice is **distributive** iff it has no sublattice
|
|
18
|
+
* isomorphic to N5 *or* to the diamond M3.
|
|
19
|
+
*
|
|
20
|
+
* Equality of carrier elements is decided by *antisymmetry of leq*:
|
|
21
|
+
* `a === b` whenever `leq(a,b) && leq(b,a)`. This lets callers use
|
|
22
|
+
* structural elements like `Set<string>` without supplying their own
|
|
23
|
+
* equality predicate.
|
|
24
|
+
*/
|
|
25
|
+
export interface FiniteLattice<T> {
|
|
26
|
+
readonly elements: ReadonlyArray<T>;
|
|
27
|
+
readonly leq: (a: T, b: T) => boolean;
|
|
28
|
+
readonly join: (a: T, b: T) => T;
|
|
29
|
+
readonly meet: (a: T, b: T) => T;
|
|
30
|
+
readonly top: T;
|
|
31
|
+
readonly bottom: T;
|
|
32
|
+
}
|
|
33
|
+
declare const indexOf: <T>(L: FiniteLattice<T>, x: T) => number;
|
|
34
|
+
/**
|
|
35
|
+
* Check that (elements, leq) forms a lattice: poset axioms plus
|
|
36
|
+
* existence of join/meet for every pair.
|
|
37
|
+
*/
|
|
38
|
+
export declare function isLattice<T>(elements: ReadonlyArray<T>, leq: (a: T, b: T) => boolean): boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Build a FiniteLattice from carrier + order. Returns null if the
|
|
41
|
+
* structure is not a lattice (missing/non-unique join or meet, or
|
|
42
|
+
* the order itself is malformed).
|
|
43
|
+
*/
|
|
44
|
+
export declare function makeLattice<T>(elements: ReadonlyArray<T>, leq: (a: T, b: T) => boolean): FiniteLattice<T> | null;
|
|
45
|
+
/**
|
|
46
|
+
* Distributive: a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) for all a,b,c.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isDistributive<T>(L: FiniteLattice<T>): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Modular: a ≤ c ⇒ a ∨ (b ∧ c) = (a ∨ b) ∧ c.
|
|
51
|
+
*/
|
|
52
|
+
export declare function isModular<T>(L: FiniteLattice<T>): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Find a complement of `a`: some x with a ∨ x = ⊤ and a ∧ x = ⊥.
|
|
55
|
+
* Returns the first match (lattice may have multiple), or null.
|
|
56
|
+
*/
|
|
57
|
+
export declare function complement<T>(L: FiniteLattice<T>, a: T): T | null;
|
|
58
|
+
/**
|
|
59
|
+
* Complemented: every element has at least one complement.
|
|
60
|
+
*/
|
|
61
|
+
export declare function isComplemented<T>(L: FiniteLattice<T>): boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Boolean lattice: distributive + complemented.
|
|
64
|
+
* In finite Boolean lattices, complements are automatically unique.
|
|
65
|
+
*/
|
|
66
|
+
export declare function isBoolean<T>(L: FiniteLattice<T>): boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Relative pseudo-complement of `a` with respect to `b`: the largest
|
|
69
|
+
* x such that a ∧ x ≤ b. Equivalently the Heyting implication a ⇒ b.
|
|
70
|
+
* Returns null if no largest x exists.
|
|
71
|
+
*/
|
|
72
|
+
export declare function relativeComplement<T>(L: FiniteLattice<T>, a: T, b: T): T | null;
|
|
73
|
+
/**
|
|
74
|
+
* Heyting algebra: distributive lattice in which every pair (a,b)
|
|
75
|
+
* has a relative pseudo-complement a ⇒ b.
|
|
76
|
+
*
|
|
77
|
+
* In finite lattices, distributivity is equivalent to existence of
|
|
78
|
+
* relative pseudo-complements, so any finite distributive lattice is
|
|
79
|
+
* automatically Heyting. We still check both for clarity.
|
|
80
|
+
*/
|
|
81
|
+
export declare function isHeyting<T>(L: FiniteLattice<T>): boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Atoms: elements that cover ⊥ (i.e. ⊥ < a with no element strictly
|
|
84
|
+
* between).
|
|
85
|
+
*/
|
|
86
|
+
export declare function atoms<T>(L: FiniteLattice<T>): T[];
|
|
87
|
+
/**
|
|
88
|
+
* Coatoms: elements covered by ⊤.
|
|
89
|
+
*/
|
|
90
|
+
export declare function coatoms<T>(L: FiniteLattice<T>): T[];
|
|
91
|
+
/**
|
|
92
|
+
* Detect a sublattice isomorphic to the pentagon N5.
|
|
93
|
+
*
|
|
94
|
+
* N5 is the 5-element lattice on {⊥, a, b, c, ⊤} with:
|
|
95
|
+
* - ⊥ < a < c < ⊤ (a chain of length 3)
|
|
96
|
+
* - ⊥ < b < ⊤ (b incomparable to both a and c)
|
|
97
|
+
* - a ∧ b = ⊥, a ∨ b = ⊤, c ∧ b = ⊥, c ∨ b = ⊤.
|
|
98
|
+
*
|
|
99
|
+
* Equivalent to: there exist 5 distinct elements x0 < x1 < x2 and y,
|
|
100
|
+
* with y incomparable to x1 and to x2 minus x0, top = x2 ∨ y,
|
|
101
|
+
* bottom = x0 ∧ y, and y ∨ x1 = y ∨ x2, y ∧ x1 = y ∧ x2.
|
|
102
|
+
*/
|
|
103
|
+
export declare function containsPentagon<T>(L: FiniteLattice<T>): boolean;
|
|
104
|
+
/**
|
|
105
|
+
* Detect a sublattice isomorphic to the diamond M3.
|
|
106
|
+
*
|
|
107
|
+
* M3 is the 5-element lattice with one bottom, one top, and three
|
|
108
|
+
* mutually incomparable elements between, each pair joining to ⊤
|
|
109
|
+
* and meeting to ⊥.
|
|
110
|
+
*/
|
|
111
|
+
export declare function containsDiamond<T>(L: FiniteLattice<T>): boolean;
|
|
112
|
+
export interface DedekindAnalysis {
|
|
113
|
+
readonly distributive: boolean;
|
|
114
|
+
readonly modular: boolean;
|
|
115
|
+
readonly pentagonFree: boolean;
|
|
116
|
+
readonly diamondFree: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Dedekind / Birkhoff structural analysis. By the two classical
|
|
120
|
+
* theorems:
|
|
121
|
+
* modular ⇔ pentagon-free
|
|
122
|
+
* distributive ⇔ pentagon-free AND diamond-free
|
|
123
|
+
* We compute both algebraically and by sublattice search; the result
|
|
124
|
+
* agrees on well-formed finite lattices.
|
|
125
|
+
*/
|
|
126
|
+
export declare function dedekindAnalysis<T>(L: FiniteLattice<T>): DedekindAnalysis;
|
|
127
|
+
/**
|
|
128
|
+
* Power set lattice 2^S ordered by inclusion. For |S|=n this has
|
|
129
|
+
* 2^n elements; keep n small (≤ 6).
|
|
130
|
+
*/
|
|
131
|
+
export declare function powerSetLattice(baseElements: ReadonlyArray<string>): FiniteLattice<Set<string>>;
|
|
132
|
+
/**
|
|
133
|
+
* Divisors of n ordered by divisibility. (Lattice for any positive n.)
|
|
134
|
+
*/
|
|
135
|
+
export declare function divisibilityLattice(n: number): FiniteLattice<number>;
|
|
136
|
+
/**
|
|
137
|
+
* Chain of n elements 0 < 1 < ... < n-1.
|
|
138
|
+
*/
|
|
139
|
+
export declare function chain(n: number): FiniteLattice<number>;
|
|
140
|
+
/**
|
|
141
|
+
* Pentagon N5: the classical non-modular 5-element lattice.
|
|
142
|
+
*
|
|
143
|
+
* Hasse diagram:
|
|
144
|
+
* T
|
|
145
|
+
* / \
|
|
146
|
+
* c b
|
|
147
|
+
* | |
|
|
148
|
+
* a |
|
|
149
|
+
* \ /
|
|
150
|
+
* B
|
|
151
|
+
*/
|
|
152
|
+
export declare function pentagonN5(): FiniteLattice<string>;
|
|
153
|
+
/**
|
|
154
|
+
* Diamond M3: modular but not distributive 5-element lattice.
|
|
155
|
+
*
|
|
156
|
+
* Hasse diagram:
|
|
157
|
+
* T
|
|
158
|
+
* / | \
|
|
159
|
+
* a b c
|
|
160
|
+
* \ | /
|
|
161
|
+
* B
|
|
162
|
+
*/
|
|
163
|
+
export declare function diamondM3(): FiniteLattice<string>;
|
|
164
|
+
export { indexOf as _indexOfElement };
|
|
165
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/lattice/index.ts"],"names":[],"mappings":"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"}
|