@stevenvo780/st-lang 4.8.0 → 4.9.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/logic/profiles/quantum/index.d.ts +153 -0
- package/dist/logic/profiles/quantum/index.d.ts.map +1 -0
- package/dist/logic/profiles/quantum/index.js +788 -0
- package/dist/logic/profiles/quantum/index.js.map +1 -0
- package/dist/namespaces/reasoning.d.ts +2 -1
- package/dist/namespaces/reasoning.d.ts.map +1 -1
- package/dist/namespaces/reasoning.js +3 -1
- package/dist/namespaces/reasoning.js.map +1 -1
- package/dist/proof-systems/certificate/canonical.d.ts +18 -0
- package/dist/proof-systems/certificate/canonical.d.ts.map +1 -0
- package/dist/proof-systems/certificate/canonical.js +79 -0
- package/dist/proof-systems/certificate/canonical.js.map +1 -0
- package/dist/proof-systems/certificate/generate.d.ts +39 -0
- package/dist/proof-systems/certificate/generate.d.ts.map +1 -0
- package/dist/proof-systems/certificate/generate.js +259 -0
- package/dist/proof-systems/certificate/generate.js.map +1 -0
- package/dist/proof-systems/certificate/index.d.ts +7 -0
- package/dist/proof-systems/certificate/index.d.ts.map +1 -0
- package/dist/proof-systems/certificate/index.js +23 -0
- package/dist/proof-systems/certificate/index.js.map +1 -0
- package/dist/proof-systems/certificate/lfsc.d.ts +15 -0
- package/dist/proof-systems/certificate/lfsc.d.ts.map +1 -0
- package/dist/proof-systems/certificate/lfsc.js +395 -0
- package/dist/proof-systems/certificate/lfsc.js.map +1 -0
- package/dist/proof-systems/certificate/rules.d.ts +8 -0
- package/dist/proof-systems/certificate/rules.d.ts.map +1 -0
- package/dist/proof-systems/certificate/rules.js +369 -0
- package/dist/proof-systems/certificate/rules.js.map +1 -0
- package/dist/proof-systems/certificate/types.d.ts +114 -0
- package/dist/proof-systems/certificate/types.d.ts.map +1 -0
- package/dist/proof-systems/certificate/types.js +18 -0
- package/dist/proof-systems/certificate/types.js.map +1 -0
- package/dist/proof-systems/certificate/verify.d.ts +20 -0
- package/dist/proof-systems/certificate/verify.d.ts.map +1 -0
- package/dist/proof-systems/certificate/verify.js +171 -0
- package/dist/proof-systems/certificate/verify.js.map +1 -0
- package/dist/reasoning/ban-logic/analyze.d.ts +31 -0
- package/dist/reasoning/ban-logic/analyze.d.ts.map +1 -0
- package/dist/reasoning/ban-logic/analyze.js +113 -0
- package/dist/reasoning/ban-logic/analyze.js.map +1 -0
- package/dist/reasoning/ban-logic/index.d.ts +7 -0
- package/dist/reasoning/ban-logic/index.d.ts.map +1 -0
- package/dist/reasoning/ban-logic/index.js +66 -0
- package/dist/reasoning/ban-logic/index.js.map +1 -0
- package/dist/reasoning/ban-logic/protocols.d.ts +54 -0
- package/dist/reasoning/ban-logic/protocols.d.ts.map +1 -0
- package/dist/reasoning/ban-logic/protocols.js +219 -0
- package/dist/reasoning/ban-logic/protocols.js.map +1 -0
- package/dist/reasoning/ban-logic/rules.d.ts +83 -0
- package/dist/reasoning/ban-logic/rules.d.ts.map +1 -0
- package/dist/reasoning/ban-logic/rules.js +409 -0
- package/dist/reasoning/ban-logic/rules.js.map +1 -0
- package/dist/reasoning/ban-logic/terms.d.ts +26 -0
- package/dist/reasoning/ban-logic/terms.d.ts.map +1 -0
- package/dist/reasoning/ban-logic/terms.js +262 -0
- package/dist/reasoning/ban-logic/terms.js.map +1 -0
- package/dist/reasoning/ban-logic/types.d.ts +107 -0
- package/dist/reasoning/ban-logic/types.d.ts.map +1 -0
- package/dist/reasoning/ban-logic/types.js +27 -0
- package/dist/reasoning/ban-logic/types.js.map +1 -0
- package/dist/reasoning/differential-privacy/index.d.ts +121 -0
- package/dist/reasoning/differential-privacy/index.d.ts.map +1 -0
- package/dist/reasoning/differential-privacy/index.js +417 -0
- package/dist/reasoning/differential-privacy/index.js.map +1 -0
- package/dist/tests/logic/profiles/quantum/quantum.test.d.ts +2 -0
- package/dist/tests/logic/profiles/quantum/quantum.test.d.ts.map +1 -0
- package/dist/tests/logic/profiles/quantum/quantum.test.js +209 -0
- package/dist/tests/logic/profiles/quantum/quantum.test.js.map +1 -0
- package/dist/tests/proof-systems/certificate/certificate.test.d.ts +2 -0
- package/dist/tests/proof-systems/certificate/certificate.test.d.ts.map +1 -0
- package/dist/tests/proof-systems/certificate/certificate.test.js +449 -0
- package/dist/tests/proof-systems/certificate/certificate.test.js.map +1 -0
- package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts +2 -0
- package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts.map +1 -0
- package/dist/tests/reasoning/ban-logic/ban-logic.test.js +270 -0
- package/dist/tests/reasoning/ban-logic/ban-logic.test.js.map +1 -0
- package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts +2 -0
- package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts.map +1 -0
- package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js +388 -0
- package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js.map +1 -0
- package/dist/tests/tooling/mathlib/mathlib.test.d.ts +2 -0
- package/dist/tests/tooling/mathlib/mathlib.test.d.ts.map +1 -0
- package/dist/tests/tooling/mathlib/mathlib.test.js +214 -0
- package/dist/tests/tooling/mathlib/mathlib.test.js.map +1 -0
- package/dist/tests/type-theory/effects/effects.test.d.ts +2 -0
- package/dist/tests/type-theory/effects/effects.test.d.ts.map +1 -0
- package/dist/tests/type-theory/effects/effects.test.js +242 -0
- package/dist/tests/type-theory/effects/effects.test.js.map +1 -0
- package/dist/tooling/mathlib/group.d.ts +27 -0
- package/dist/tooling/mathlib/group.d.ts.map +1 -0
- package/dist/tooling/mathlib/group.js +89 -0
- package/dist/tooling/mathlib/group.js.map +1 -0
- package/dist/tooling/mathlib/index.d.ts +8 -0
- package/dist/tooling/mathlib/index.d.ts.map +1 -0
- package/dist/tooling/mathlib/index.js +40 -0
- package/dist/tooling/mathlib/index.js.map +1 -0
- package/dist/tooling/mathlib/instances.d.ts +29 -0
- package/dist/tooling/mathlib/instances.d.ts.map +1 -0
- package/dist/tooling/mathlib/instances.js +139 -0
- package/dist/tooling/mathlib/instances.js.map +1 -0
- package/dist/tooling/mathlib/lemmas.d.ts +3 -0
- package/dist/tooling/mathlib/lemmas.d.ts.map +1 -0
- package/dist/tooling/mathlib/lemmas.js +72 -0
- package/dist/tooling/mathlib/lemmas.js.map +1 -0
- package/dist/tooling/mathlib/order.d.ts +29 -0
- package/dist/tooling/mathlib/order.d.ts.map +1 -0
- package/dist/tooling/mathlib/order.js +91 -0
- package/dist/tooling/mathlib/order.js.map +1 -0
- package/dist/tooling/mathlib/ring.d.ts +15 -0
- package/dist/tooling/mathlib/ring.d.ts.map +1 -0
- package/dist/tooling/mathlib/ring.js +91 -0
- package/dist/tooling/mathlib/ring.js.map +1 -0
- package/dist/tooling/mathlib/types.d.ts +62 -0
- package/dist/tooling/mathlib/types.d.ts.map +1 -0
- package/dist/tooling/mathlib/types.js +7 -0
- package/dist/tooling/mathlib/types.js.map +1 -0
- package/dist/type-theory/effects/core.d.ts +27 -0
- package/dist/type-theory/effects/core.d.ts.map +1 -0
- package/dist/type-theory/effects/core.js +79 -0
- package/dist/type-theory/effects/core.js.map +1 -0
- package/dist/type-theory/effects/exception.d.ts +18 -0
- package/dist/type-theory/effects/exception.d.ts.map +1 -0
- package/dist/type-theory/effects/exception.js +59 -0
- package/dist/type-theory/effects/exception.js.map +1 -0
- package/dist/type-theory/effects/index.d.ts +11 -0
- package/dist/type-theory/effects/index.d.ts.map +1 -0
- package/dist/type-theory/effects/index.js +50 -0
- package/dist/type-theory/effects/index.js.map +1 -0
- package/dist/type-theory/effects/reader.d.ts +20 -0
- package/dist/type-theory/effects/reader.d.ts.map +1 -0
- package/dist/type-theory/effects/reader.js +62 -0
- package/dist/type-theory/effects/reader.js.map +1 -0
- package/dist/type-theory/effects/state.d.ts +31 -0
- package/dist/type-theory/effects/state.d.ts.map +1 -0
- package/dist/type-theory/effects/state.js +91 -0
- package/dist/type-theory/effects/state.js.map +1 -0
- package/dist/type-theory/effects/types.d.ts +45 -0
- package/dist/type-theory/effects/types.d.ts.map +1 -0
- package/dist/type-theory/effects/types.js +21 -0
- package/dist/type-theory/effects/types.js.map +1 -0
- package/dist/type-theory/effects/writer.d.ts +30 -0
- package/dist/type-theory/effects/writer.d.ts.map +1 -0
- package/dist/type-theory/effects/writer.js +79 -0
- package/dist/type-theory/effects/writer.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// BAN Logic — Constructores y equality de términos/fórmulas
|
|
4
|
+
// ============================================================
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.formulaAnd = exports.controls = exports.sharedSecret = exports.publicKey = exports.sharedKey = exports.fresh = exports.jurisdiction = exports.saidMessage = exports.said = exports.sees = exports.believes = exports.compound = exports.hashed = exports.encrypted = exports.message = exports.atom = exports.nonce = exports.key = exports.principal = void 0;
|
|
7
|
+
exports.termEquals = termEquals;
|
|
8
|
+
exports.formulaEquals = formulaEquals;
|
|
9
|
+
exports.hasFormula = hasFormula;
|
|
10
|
+
exports.termToString = termToString;
|
|
11
|
+
exports.formulaToString = formulaToString;
|
|
12
|
+
/* ── Constructores de términos ── */
|
|
13
|
+
const principal = (name) => ({ kind: 'principal', name });
|
|
14
|
+
exports.principal = principal;
|
|
15
|
+
const key = (name, shared) => shared ? { kind: 'key', name, shared } : { kind: 'key', name };
|
|
16
|
+
exports.key = key;
|
|
17
|
+
const nonce = (name) => ({ kind: 'nonce', name });
|
|
18
|
+
exports.nonce = nonce;
|
|
19
|
+
const atom = (name) => ({ kind: 'atom', name });
|
|
20
|
+
exports.atom = atom;
|
|
21
|
+
const message = (...content) => ({ kind: 'message', content });
|
|
22
|
+
exports.message = message;
|
|
23
|
+
const encrypted = (msg, k) => ({
|
|
24
|
+
kind: 'encrypted',
|
|
25
|
+
message: msg,
|
|
26
|
+
key: k,
|
|
27
|
+
});
|
|
28
|
+
exports.encrypted = encrypted;
|
|
29
|
+
const hashed = (msg) => ({ kind: 'hashed', message: msg });
|
|
30
|
+
exports.hashed = hashed;
|
|
31
|
+
const compound = (...parts) => ({ kind: 'compound', parts });
|
|
32
|
+
exports.compound = compound;
|
|
33
|
+
/* ── Constructores de fórmulas ── */
|
|
34
|
+
const believes = (p, f) => ({
|
|
35
|
+
kind: 'believes',
|
|
36
|
+
principal: p,
|
|
37
|
+
about: f,
|
|
38
|
+
});
|
|
39
|
+
exports.believes = believes;
|
|
40
|
+
const sees = (p, w) => ({
|
|
41
|
+
kind: 'sees',
|
|
42
|
+
principal: p,
|
|
43
|
+
what: w,
|
|
44
|
+
});
|
|
45
|
+
exports.sees = sees;
|
|
46
|
+
const said = (p, f) => ({
|
|
47
|
+
kind: 'said',
|
|
48
|
+
principal: p,
|
|
49
|
+
what: f,
|
|
50
|
+
});
|
|
51
|
+
exports.said = said;
|
|
52
|
+
const saidMessage = (p, w) => ({
|
|
53
|
+
kind: 'said-message',
|
|
54
|
+
principal: p,
|
|
55
|
+
what: w,
|
|
56
|
+
});
|
|
57
|
+
exports.saidMessage = saidMessage;
|
|
58
|
+
const jurisdiction = (p, f) => ({
|
|
59
|
+
kind: 'jurisdiction',
|
|
60
|
+
principal: p,
|
|
61
|
+
over: f,
|
|
62
|
+
});
|
|
63
|
+
exports.jurisdiction = jurisdiction;
|
|
64
|
+
const fresh = (w) => ({ kind: 'fresh', what: w });
|
|
65
|
+
exports.fresh = fresh;
|
|
66
|
+
const sharedKey = (a, b, k) => ({
|
|
67
|
+
kind: 'sharedKey',
|
|
68
|
+
a,
|
|
69
|
+
b,
|
|
70
|
+
key: k,
|
|
71
|
+
});
|
|
72
|
+
exports.sharedKey = sharedKey;
|
|
73
|
+
const publicKey = (p, k) => ({
|
|
74
|
+
kind: 'publicKey',
|
|
75
|
+
principal: p,
|
|
76
|
+
key: k,
|
|
77
|
+
});
|
|
78
|
+
exports.publicKey = publicKey;
|
|
79
|
+
const sharedSecret = (a, b, s) => ({
|
|
80
|
+
kind: 'sharedSecret',
|
|
81
|
+
a,
|
|
82
|
+
b,
|
|
83
|
+
secret: s,
|
|
84
|
+
});
|
|
85
|
+
exports.sharedSecret = sharedSecret;
|
|
86
|
+
const controls = (p, f) => ({
|
|
87
|
+
kind: 'controls',
|
|
88
|
+
principal: p,
|
|
89
|
+
statement: f,
|
|
90
|
+
});
|
|
91
|
+
exports.controls = controls;
|
|
92
|
+
const formulaAnd = (left, right) => ({
|
|
93
|
+
kind: 'formula-and',
|
|
94
|
+
left,
|
|
95
|
+
right,
|
|
96
|
+
});
|
|
97
|
+
exports.formulaAnd = formulaAnd;
|
|
98
|
+
/* ── Igualdad estructural ── */
|
|
99
|
+
function termEquals(a, b) {
|
|
100
|
+
if (a.kind !== b.kind)
|
|
101
|
+
return false;
|
|
102
|
+
switch (a.kind) {
|
|
103
|
+
case 'principal':
|
|
104
|
+
case 'nonce':
|
|
105
|
+
case 'atom':
|
|
106
|
+
// narrow b to a kind with .name
|
|
107
|
+
return b.name === a.name;
|
|
108
|
+
case 'key': {
|
|
109
|
+
const bk = b;
|
|
110
|
+
if (bk.name !== a.name)
|
|
111
|
+
return false;
|
|
112
|
+
const as = a.shared;
|
|
113
|
+
const bs = bk.shared;
|
|
114
|
+
if (!as && !bs)
|
|
115
|
+
return true;
|
|
116
|
+
if (!as || !bs)
|
|
117
|
+
return false;
|
|
118
|
+
// Shared pair es bi-direccional: {A,B} == {B,A}.
|
|
119
|
+
return (as[0] === bs[0] && as[1] === bs[1]) || (as[0] === bs[1] && as[1] === bs[0]);
|
|
120
|
+
}
|
|
121
|
+
case 'message': {
|
|
122
|
+
const bm = b;
|
|
123
|
+
if (a.content.length !== bm.content.length)
|
|
124
|
+
return false;
|
|
125
|
+
for (let i = 0; i < a.content.length; i++) {
|
|
126
|
+
const ai = a.content[i];
|
|
127
|
+
const bi = bm.content[i];
|
|
128
|
+
if (!ai || !bi)
|
|
129
|
+
return false;
|
|
130
|
+
if (!termEquals(ai, bi))
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
case 'compound': {
|
|
136
|
+
const bc = b;
|
|
137
|
+
if (a.parts.length !== bc.parts.length)
|
|
138
|
+
return false;
|
|
139
|
+
for (let i = 0; i < a.parts.length; i++) {
|
|
140
|
+
const ai = a.parts[i];
|
|
141
|
+
const bi = bc.parts[i];
|
|
142
|
+
if (!ai || !bi)
|
|
143
|
+
return false;
|
|
144
|
+
if (!termEquals(ai, bi))
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
return true;
|
|
148
|
+
}
|
|
149
|
+
case 'encrypted': {
|
|
150
|
+
const be = b;
|
|
151
|
+
return termEquals(a.message, be.message) && termEquals(a.key, be.key);
|
|
152
|
+
}
|
|
153
|
+
case 'hashed': {
|
|
154
|
+
const bh = b;
|
|
155
|
+
return termEquals(a.message, bh.message);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function formulaEquals(a, b) {
|
|
160
|
+
if (a.kind !== b.kind)
|
|
161
|
+
return false;
|
|
162
|
+
switch (a.kind) {
|
|
163
|
+
case 'believes': {
|
|
164
|
+
const bb = b;
|
|
165
|
+
return termEquals(a.principal, bb.principal) && formulaEquals(a.about, bb.about);
|
|
166
|
+
}
|
|
167
|
+
case 'sees': {
|
|
168
|
+
const bs = b;
|
|
169
|
+
return termEquals(a.principal, bs.principal) && termEquals(a.what, bs.what);
|
|
170
|
+
}
|
|
171
|
+
case 'said': {
|
|
172
|
+
const bs = b;
|
|
173
|
+
return termEquals(a.principal, bs.principal) && formulaEquals(a.what, bs.what);
|
|
174
|
+
}
|
|
175
|
+
case 'said-message': {
|
|
176
|
+
const bs = b;
|
|
177
|
+
return termEquals(a.principal, bs.principal) && termEquals(a.what, bs.what);
|
|
178
|
+
}
|
|
179
|
+
case 'jurisdiction': {
|
|
180
|
+
const bj = b;
|
|
181
|
+
return termEquals(a.principal, bj.principal) && formulaEquals(a.over, bj.over);
|
|
182
|
+
}
|
|
183
|
+
case 'fresh': {
|
|
184
|
+
const bf = b;
|
|
185
|
+
return termEquals(a.what, bf.what);
|
|
186
|
+
}
|
|
187
|
+
case 'sharedKey': {
|
|
188
|
+
const bs = b;
|
|
189
|
+
// El predicado "A ↔K B" es simétrico en (A,B).
|
|
190
|
+
const ab = termEquals(a.a, bs.a) && termEquals(a.b, bs.b);
|
|
191
|
+
const ba = termEquals(a.a, bs.b) && termEquals(a.b, bs.a);
|
|
192
|
+
return (ab || ba) && termEquals(a.key, bs.key);
|
|
193
|
+
}
|
|
194
|
+
case 'publicKey': {
|
|
195
|
+
const bp = b;
|
|
196
|
+
return termEquals(a.principal, bp.principal) && termEquals(a.key, bp.key);
|
|
197
|
+
}
|
|
198
|
+
case 'sharedSecret': {
|
|
199
|
+
const bs = b;
|
|
200
|
+
const ab = termEquals(a.a, bs.a) && termEquals(a.b, bs.b);
|
|
201
|
+
const ba = termEquals(a.a, bs.b) && termEquals(a.b, bs.a);
|
|
202
|
+
return (ab || ba) && termEquals(a.secret, bs.secret);
|
|
203
|
+
}
|
|
204
|
+
case 'controls': {
|
|
205
|
+
const bc = b;
|
|
206
|
+
return termEquals(a.principal, bc.principal) && formulaEquals(a.statement, bc.statement);
|
|
207
|
+
}
|
|
208
|
+
case 'formula-and': {
|
|
209
|
+
const ba = b;
|
|
210
|
+
return formulaEquals(a.left, ba.left) && formulaEquals(a.right, ba.right);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function hasFormula(state, target) {
|
|
215
|
+
return state.some((f) => formulaEquals(f, target));
|
|
216
|
+
}
|
|
217
|
+
/* ── Pretty printing ── */
|
|
218
|
+
function termToString(t) {
|
|
219
|
+
switch (t.kind) {
|
|
220
|
+
case 'principal':
|
|
221
|
+
case 'nonce':
|
|
222
|
+
case 'atom':
|
|
223
|
+
return t.name;
|
|
224
|
+
case 'key':
|
|
225
|
+
return t.shared ? `K_${t.shared[0]}${t.shared[1]}` : t.name;
|
|
226
|
+
case 'message':
|
|
227
|
+
return `<${t.content.map(termToString).join(', ')}>`;
|
|
228
|
+
case 'compound':
|
|
229
|
+
return `(${t.parts.map(termToString).join(' · ')})`;
|
|
230
|
+
case 'encrypted':
|
|
231
|
+
return `{${termToString(t.message)}}_${termToString(t.key)}`;
|
|
232
|
+
case 'hashed':
|
|
233
|
+
return `H(${termToString(t.message)})`;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
function formulaToString(f) {
|
|
237
|
+
switch (f.kind) {
|
|
238
|
+
case 'believes':
|
|
239
|
+
return `${termToString(f.principal)} |≡ ${formulaToString(f.about)}`;
|
|
240
|
+
case 'sees':
|
|
241
|
+
return `${termToString(f.principal)} ◁ ${termToString(f.what)}`;
|
|
242
|
+
case 'said':
|
|
243
|
+
return `${termToString(f.principal)} |~ ${formulaToString(f.what)}`;
|
|
244
|
+
case 'said-message':
|
|
245
|
+
return `${termToString(f.principal)} |~ ${termToString(f.what)}`;
|
|
246
|
+
case 'jurisdiction':
|
|
247
|
+
return `${termToString(f.principal)} |⇒ ${formulaToString(f.over)}`;
|
|
248
|
+
case 'fresh':
|
|
249
|
+
return `#(${termToString(f.what)})`;
|
|
250
|
+
case 'sharedKey':
|
|
251
|
+
return `${termToString(f.a)} ↔${termToString(f.key)} ${termToString(f.b)}`;
|
|
252
|
+
case 'publicKey':
|
|
253
|
+
return `|→${termToString(f.key)} ${termToString(f.principal)}`;
|
|
254
|
+
case 'sharedSecret':
|
|
255
|
+
return `${termToString(f.a)} ⇌${termToString(f.secret)} ${termToString(f.b)}`;
|
|
256
|
+
case 'controls':
|
|
257
|
+
return `${termToString(f.principal)} |⇒ ${formulaToString(f.statement)}`;
|
|
258
|
+
case 'formula-and':
|
|
259
|
+
return `(${formulaToString(f.left)}) ∧ (${formulaToString(f.right)})`;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=terms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"terms.js","sourceRoot":"","sources":["../../../src/reasoning/ban-logic/terms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Un término BAN es un objeto del dominio: principal (agente), clave,
|
|
3
|
+
* nonce, mensaje compuesto, mensaje cifrado, hash o término genérico.
|
|
4
|
+
*/
|
|
5
|
+
export type BANTerm = {
|
|
6
|
+
kind: 'principal';
|
|
7
|
+
name: string;
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'key';
|
|
10
|
+
name: string;
|
|
11
|
+
shared?: [string, string];
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'nonce';
|
|
14
|
+
name: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: 'message';
|
|
17
|
+
content: BANTerm[];
|
|
18
|
+
} | {
|
|
19
|
+
kind: 'encrypted';
|
|
20
|
+
message: BANTerm;
|
|
21
|
+
key: BANTerm;
|
|
22
|
+
} | {
|
|
23
|
+
kind: 'hashed';
|
|
24
|
+
message: BANTerm;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'compound';
|
|
27
|
+
parts: BANTerm[];
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'atom';
|
|
30
|
+
name: string;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Una fórmula BAN es una proposición sobre creencias, posesión o
|
|
34
|
+
* propiedades de términos. Es lo que las reglas manipulan.
|
|
35
|
+
*
|
|
36
|
+
* Nota: tratamos `said` y `said-message` por separado porque BAN distingue
|
|
37
|
+
* entre "P dijo una fórmula completa" (raro) y "P dijo un término"
|
|
38
|
+
* (caso usual; lo que aparece en mensajes ciphered).
|
|
39
|
+
*/
|
|
40
|
+
export type BANFormula = {
|
|
41
|
+
kind: 'believes';
|
|
42
|
+
principal: BANTerm;
|
|
43
|
+
about: BANFormula;
|
|
44
|
+
} | {
|
|
45
|
+
kind: 'sees';
|
|
46
|
+
principal: BANTerm;
|
|
47
|
+
what: BANTerm;
|
|
48
|
+
} | {
|
|
49
|
+
kind: 'said';
|
|
50
|
+
principal: BANTerm;
|
|
51
|
+
what: BANFormula;
|
|
52
|
+
} | {
|
|
53
|
+
kind: 'said-message';
|
|
54
|
+
principal: BANTerm;
|
|
55
|
+
what: BANTerm;
|
|
56
|
+
} | {
|
|
57
|
+
kind: 'jurisdiction';
|
|
58
|
+
principal: BANTerm;
|
|
59
|
+
over: BANFormula;
|
|
60
|
+
} | {
|
|
61
|
+
kind: 'fresh';
|
|
62
|
+
what: BANTerm;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'sharedKey';
|
|
65
|
+
a: BANTerm;
|
|
66
|
+
b: BANTerm;
|
|
67
|
+
key: BANTerm;
|
|
68
|
+
} | {
|
|
69
|
+
kind: 'publicKey';
|
|
70
|
+
principal: BANTerm;
|
|
71
|
+
key: BANTerm;
|
|
72
|
+
} | {
|
|
73
|
+
kind: 'sharedSecret';
|
|
74
|
+
a: BANTerm;
|
|
75
|
+
b: BANTerm;
|
|
76
|
+
secret: BANTerm;
|
|
77
|
+
} | {
|
|
78
|
+
kind: 'controls';
|
|
79
|
+
principal: BANTerm;
|
|
80
|
+
statement: BANFormula;
|
|
81
|
+
} | {
|
|
82
|
+
kind: 'formula-and';
|
|
83
|
+
left: BANFormula;
|
|
84
|
+
right: BANFormula;
|
|
85
|
+
};
|
|
86
|
+
export interface BANRule {
|
|
87
|
+
name: string;
|
|
88
|
+
description: string;
|
|
89
|
+
}
|
|
90
|
+
export interface ProtocolStep {
|
|
91
|
+
from: string;
|
|
92
|
+
to: string;
|
|
93
|
+
message: BANTerm;
|
|
94
|
+
}
|
|
95
|
+
export interface Protocol {
|
|
96
|
+
name: string;
|
|
97
|
+
participants: string[];
|
|
98
|
+
initialAssumptions: BANFormula[];
|
|
99
|
+
steps: ProtocolStep[];
|
|
100
|
+
goals: BANFormula[];
|
|
101
|
+
}
|
|
102
|
+
export interface ProtocolAnalysis {
|
|
103
|
+
satisfied: BANFormula[];
|
|
104
|
+
unsatisfied: BANFormula[];
|
|
105
|
+
trace: BANFormula[];
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reasoning/ban-logic/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ============================================================
|
|
3
|
+
// BAN Logic — Tipos públicos
|
|
4
|
+
// ============================================================
|
|
5
|
+
//
|
|
6
|
+
// Burrows-Abadi-Needham logic (1989): cálculo modal de creencias para
|
|
7
|
+
// análisis de protocolos criptográficos de autenticación.
|
|
8
|
+
//
|
|
9
|
+
// Símbolos (notación estándar BAN):
|
|
10
|
+
//
|
|
11
|
+
// P |≡ X "P believes X" P cree X
|
|
12
|
+
// P ◁ X "P sees X" P ve X (recibió un mensaje con X)
|
|
13
|
+
// P |~ X "P once said X" P dijo X alguna vez
|
|
14
|
+
// P |⇒ X "P has jurisdiction over X" P es autoridad sobre X
|
|
15
|
+
// #(X) "fresh X" X es fresco (nonce reciente)
|
|
16
|
+
// P ↔K Q "K is shared between P, Q" K es clave compartida
|
|
17
|
+
// |→K P "K is public key for P" K es la clave pública de P
|
|
18
|
+
// P ⇌X Q "X is shared secret" X es un secreto compartido
|
|
19
|
+
// {X}_K "X encrypted with K" X cifrado con K
|
|
20
|
+
// <X>_Y "X combined with secret Y" X concatenado con secreto Y
|
|
21
|
+
// H(X) "hash of X" hash de X
|
|
22
|
+
//
|
|
23
|
+
// Reglas de inferencia clásicas (10): message-meaning (3 variantes:
|
|
24
|
+
// shared-key, public-key, shared-secret), nonce-verification,
|
|
25
|
+
// jurisdiction, freshness propagation, belief conjunction, seeing rules.
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/reasoning/ban-logic/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,6BAA6B;AAC7B,+DAA+D;AAC/D,EAAE;AACF,sEAAsE;AACtE,0DAA0D;AAC1D,EAAE;AACF,oCAAoC;AACpC,EAAE;AACF,sDAAsD;AACtD,+EAA+E;AAC/E,iEAAiE;AACjE,oEAAoE;AACpE,0EAA0E;AAC1E,mEAAmE;AACnE,wEAAwE;AACxE,wEAAwE;AACxE,6DAA6D;AAC7D,yEAAyE;AACzE,uDAAuD;AACvD,EAAE;AACF,oEAAoE;AACpE,8DAA8D;AAC9D,yEAAyE"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
export interface DPMechanism<T> {
|
|
2
|
+
epsilon: number;
|
|
3
|
+
delta: number;
|
|
4
|
+
sensitivity: number;
|
|
5
|
+
apply(input: T): T | number;
|
|
6
|
+
}
|
|
7
|
+
export interface DPRng {
|
|
8
|
+
uniform(): number;
|
|
9
|
+
laplace(b: number): number;
|
|
10
|
+
gaussian(mu: number, sigma: number): number;
|
|
11
|
+
}
|
|
12
|
+
export declare function makeDPRng(seed?: number): DPRng;
|
|
13
|
+
/**
|
|
14
|
+
* Mecanismo de Laplace: agrega ruido Laplace(0, Δ/ε) a `value`.
|
|
15
|
+
* Da ε-DP puro (δ = 0) cuando Δ es la sensibilidad L1 de la query.
|
|
16
|
+
*/
|
|
17
|
+
export declare function laplaceNoise(value: number, sensitivity: number, epsilon: number, rng?: DPRng): number;
|
|
18
|
+
/**
|
|
19
|
+
* Mecanismo Gaussian: agrega N(0, σ²) con σ = Δ·√(2 ln(1.25/δ))/ε,
|
|
20
|
+
* la calibración estándar de Dwork-Roth (Algorithmic Foundations,
|
|
21
|
+
* Theorem A.1). Garantiza (ε,δ)-DP para ε ∈ (0, 1] cuando Δ es la
|
|
22
|
+
* sensibilidad L2. Para ε > 1 la cota sigue siendo válida pero deja
|
|
23
|
+
* de ser tight; los frameworks modernos prefieren la "analytic
|
|
24
|
+
* Gaussian" (Balle-Wang 2018) — la dejamos para una iteración futura.
|
|
25
|
+
*/
|
|
26
|
+
export declare function gaussianNoise(value: number, sensitivity: number, epsilon: number, delta: number, rng?: DPRng): number;
|
|
27
|
+
/**
|
|
28
|
+
* Mecanismo exponencial: elige un item con probabilidad proporcional
|
|
29
|
+
* a exp(ε · score(item) / (2 · sensitivity)). Implementa la
|
|
30
|
+
* formulación canónica (McSherry-Talwar 2007). Da ε-DP cuando
|
|
31
|
+
* `sensitivity` es la sensibilidad de la función de score.
|
|
32
|
+
*/
|
|
33
|
+
export declare function exponentialMechanism<T>(items: T[], score: (item: T) => number, sensitivity: number, epsilon: number, rng?: DPRng): T;
|
|
34
|
+
/**
|
|
35
|
+
* Randomized response binario: reporta `bit` con probabilidad `p`,
|
|
36
|
+
* y `¬bit` con probabilidad 1 − p. Garantiza ε-DP local con
|
|
37
|
+
* ε = |ln(p / (1 − p))|. La elección clásica p = 3/4 da ε = ln 3.
|
|
38
|
+
*/
|
|
39
|
+
export declare function randomizedResponse(bit: boolean, p: number, rng?: DPRng): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* ε equivalente a un mecanismo de randomized response con
|
|
42
|
+
* probabilidad de verdad `p`. Útil para test del trade-off.
|
|
43
|
+
*/
|
|
44
|
+
export declare function randomizedResponseEpsilon(p: number): number;
|
|
45
|
+
/**
|
|
46
|
+
* Conteo DP: cuenta cuántos valores cumplen `predicate` y aplica
|
|
47
|
+
* ruido Laplace con sensibilidad 1 (cambiar un registro mueve el
|
|
48
|
+
* conteo en a lo más 1). El resultado se redondea al entero más
|
|
49
|
+
* cercano y se clamp-a a ≥ 0 (un conteo nunca es negativo).
|
|
50
|
+
*/
|
|
51
|
+
export declare function dpCount<T>(values: T[], predicate: (v: T) => boolean, epsilon: number, rng?: DPRng): number;
|
|
52
|
+
/**
|
|
53
|
+
* Media DP de valores acotados al rango [low, high]: clipea cada
|
|
54
|
+
* valor al rango, calcula la media empírica y aplica Laplace con
|
|
55
|
+
* sensibilidad (high − low) / n. Asumimos n público.
|
|
56
|
+
*/
|
|
57
|
+
export declare function dpMean(values: number[], range: [number, number], epsilon: number, rng?: DPRng): number;
|
|
58
|
+
/**
|
|
59
|
+
* Histograma DP sobre `categories`: cuenta ocurrencias por categoría
|
|
60
|
+
* y agrega ruido Laplace independiente a cada bin con sensibilidad 1.
|
|
61
|
+
* Asumimos que cada registro pertenece a a lo más una categoría
|
|
62
|
+
* (cambiar un registro mueve a lo más un bin en ±1). Si las
|
|
63
|
+
* categorías son disjuntas y cubrentes, este es un caso clásico de
|
|
64
|
+
* composición paralela: el ε total = ε.
|
|
65
|
+
*/
|
|
66
|
+
export declare function dpHistogram<T>(values: T[], categories: T[], epsilon: number, rng?: DPRng): Map<T, number>;
|
|
67
|
+
export interface PrivacyBudget {
|
|
68
|
+
epsilon: number;
|
|
69
|
+
delta: number;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Composición básica (Dwork-McSherry-Nissim-Smith 2006, Theorem 3.16
|
|
73
|
+
* en Algorithmic Foundations): la composición secuencial de k
|
|
74
|
+
* mecanismos (ε_i, δ_i)-DP da (Σ ε_i, Σ δ_i)-DP. Cota uniforme y
|
|
75
|
+
* conservadora.
|
|
76
|
+
*/
|
|
77
|
+
export declare function basicComposition(mechanisms: PrivacyBudget[]): PrivacyBudget;
|
|
78
|
+
/**
|
|
79
|
+
* Composición avanzada (Dwork-Rothblum-Vadhan 2010, Theorem III.3):
|
|
80
|
+
* para k mecanismos cada uno (ε, δ)-DP, el compuesto es
|
|
81
|
+
*
|
|
82
|
+
* (√(2 k ln(1/δ')) · ε + k · ε · (e^ε − 1), k δ + δ')-DP
|
|
83
|
+
*
|
|
84
|
+
* para cualquier δ' > 0. Cuando los ε_i son heterogéneos usamos el
|
|
85
|
+
* máximo como cota uniforme (válida pero no óptima; el tight bound
|
|
86
|
+
* heterogéneo requiere RDP/zCDP, fuera del alcance de este módulo).
|
|
87
|
+
*
|
|
88
|
+
* `deltaTotal` es el δ' adicional que el caller acepta pagar.
|
|
89
|
+
* Devuelve el (ε,δ) total cubriendo el slack δ'.
|
|
90
|
+
*/
|
|
91
|
+
export declare function advancedComposition(mechanisms: PrivacyBudget[], deltaTotal: number): PrivacyBudget;
|
|
92
|
+
/**
|
|
93
|
+
* Composición paralela: cuando k mecanismos actúan sobre particiones
|
|
94
|
+
* disjuntas del dataset, el ε total es el máximo (no la suma), y el
|
|
95
|
+
* δ total es el máximo (no la suma). Caso clásico: histograma con
|
|
96
|
+
* categorías mutuamente excluyentes.
|
|
97
|
+
*/
|
|
98
|
+
export declare function parallelComposition(mechanisms: PrivacyBudget[]): PrivacyBudget;
|
|
99
|
+
/**
|
|
100
|
+
* Sensibilidad global L1: el máximo de |f(D) − f(D')| sobre la
|
|
101
|
+
* lista de pares neighbours suministrada. Implementación empírica
|
|
102
|
+
* pensada para tests/diagnóstico — la sensibilidad real exige
|
|
103
|
+
* razonar sobre todas las parejas válidas, no sólo las muestreadas.
|
|
104
|
+
*/
|
|
105
|
+
export declare function globalSensitivityL1(fn: (data: number[]) => number, neighbors: Array<[number[], number[]]>): number;
|
|
106
|
+
/**
|
|
107
|
+
* Sensibilidad suave (Nissim-Raskhodnikova-Smith 2007):
|
|
108
|
+
*
|
|
109
|
+
* S*_β(f, D) = max_k e^{−β·k} · LS^{(k)}(f, D)
|
|
110
|
+
*
|
|
111
|
+
* donde LS^{(k)} es la sensibilidad local a distancia k. Aproximamos
|
|
112
|
+
* variando vecinos hasta `data.length` (cota superior de k). Para
|
|
113
|
+
* datasets grandes, restringir el k máximo via la longitud del
|
|
114
|
+
* propio dataset.
|
|
115
|
+
*
|
|
116
|
+
* Esta es una versión basada en mutaciones simples (cambiar un valor
|
|
117
|
+
* por el mín o máx empírico) — suficiente para median/mean acotados
|
|
118
|
+
* en tests, no un cálculo general.
|
|
119
|
+
*/
|
|
120
|
+
export declare function smoothSensitivity(fn: (data: number[]) => number, data: number[], beta: number): number;
|
|
121
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/differential-privacy/index.ts"],"names":[],"mappings":"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"}
|