@stevenvo780/st-lang 4.7.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.
Files changed (285) hide show
  1. package/dist/logic/profiles/quantum/index.d.ts +153 -0
  2. package/dist/logic/profiles/quantum/index.d.ts.map +1 -0
  3. package/dist/logic/profiles/quantum/index.js +788 -0
  4. package/dist/logic/profiles/quantum/index.js.map +1 -0
  5. package/dist/namespaces/reasoning.d.ts +3 -1
  6. package/dist/namespaces/reasoning.d.ts.map +1 -1
  7. package/dist/namespaces/reasoning.js +5 -1
  8. package/dist/namespaces/reasoning.js.map +1 -1
  9. package/dist/proof-systems/certificate/canonical.d.ts +18 -0
  10. package/dist/proof-systems/certificate/canonical.d.ts.map +1 -0
  11. package/dist/proof-systems/certificate/canonical.js +79 -0
  12. package/dist/proof-systems/certificate/canonical.js.map +1 -0
  13. package/dist/proof-systems/certificate/generate.d.ts +39 -0
  14. package/dist/proof-systems/certificate/generate.d.ts.map +1 -0
  15. package/dist/proof-systems/certificate/generate.js +259 -0
  16. package/dist/proof-systems/certificate/generate.js.map +1 -0
  17. package/dist/proof-systems/certificate/index.d.ts +7 -0
  18. package/dist/proof-systems/certificate/index.d.ts.map +1 -0
  19. package/dist/proof-systems/certificate/index.js +23 -0
  20. package/dist/proof-systems/certificate/index.js.map +1 -0
  21. package/dist/proof-systems/certificate/lfsc.d.ts +15 -0
  22. package/dist/proof-systems/certificate/lfsc.d.ts.map +1 -0
  23. package/dist/proof-systems/certificate/lfsc.js +395 -0
  24. package/dist/proof-systems/certificate/lfsc.js.map +1 -0
  25. package/dist/proof-systems/certificate/rules.d.ts +8 -0
  26. package/dist/proof-systems/certificate/rules.d.ts.map +1 -0
  27. package/dist/proof-systems/certificate/rules.js +369 -0
  28. package/dist/proof-systems/certificate/rules.js.map +1 -0
  29. package/dist/proof-systems/certificate/types.d.ts +114 -0
  30. package/dist/proof-systems/certificate/types.d.ts.map +1 -0
  31. package/dist/proof-systems/certificate/types.js +18 -0
  32. package/dist/proof-systems/certificate/types.js.map +1 -0
  33. package/dist/proof-systems/certificate/verify.d.ts +20 -0
  34. package/dist/proof-systems/certificate/verify.d.ts.map +1 -0
  35. package/dist/proof-systems/certificate/verify.js +171 -0
  36. package/dist/proof-systems/certificate/verify.js.map +1 -0
  37. package/dist/reasoning/ban-logic/analyze.d.ts +31 -0
  38. package/dist/reasoning/ban-logic/analyze.d.ts.map +1 -0
  39. package/dist/reasoning/ban-logic/analyze.js +113 -0
  40. package/dist/reasoning/ban-logic/analyze.js.map +1 -0
  41. package/dist/reasoning/ban-logic/index.d.ts +7 -0
  42. package/dist/reasoning/ban-logic/index.d.ts.map +1 -0
  43. package/dist/reasoning/ban-logic/index.js +66 -0
  44. package/dist/reasoning/ban-logic/index.js.map +1 -0
  45. package/dist/reasoning/ban-logic/protocols.d.ts +54 -0
  46. package/dist/reasoning/ban-logic/protocols.d.ts.map +1 -0
  47. package/dist/reasoning/ban-logic/protocols.js +219 -0
  48. package/dist/reasoning/ban-logic/protocols.js.map +1 -0
  49. package/dist/reasoning/ban-logic/rules.d.ts +83 -0
  50. package/dist/reasoning/ban-logic/rules.d.ts.map +1 -0
  51. package/dist/reasoning/ban-logic/rules.js +409 -0
  52. package/dist/reasoning/ban-logic/rules.js.map +1 -0
  53. package/dist/reasoning/ban-logic/terms.d.ts +26 -0
  54. package/dist/reasoning/ban-logic/terms.d.ts.map +1 -0
  55. package/dist/reasoning/ban-logic/terms.js +262 -0
  56. package/dist/reasoning/ban-logic/terms.js.map +1 -0
  57. package/dist/reasoning/ban-logic/types.d.ts +107 -0
  58. package/dist/reasoning/ban-logic/types.d.ts.map +1 -0
  59. package/dist/reasoning/ban-logic/types.js +27 -0
  60. package/dist/reasoning/ban-logic/types.js.map +1 -0
  61. package/dist/reasoning/combinatorial-games/index.d.ts +105 -0
  62. package/dist/reasoning/combinatorial-games/index.d.ts.map +1 -0
  63. package/dist/reasoning/combinatorial-games/index.js +377 -0
  64. package/dist/reasoning/combinatorial-games/index.js.map +1 -0
  65. package/dist/reasoning/differential-privacy/index.d.ts +121 -0
  66. package/dist/reasoning/differential-privacy/index.d.ts.map +1 -0
  67. package/dist/reasoning/differential-privacy/index.js +417 -0
  68. package/dist/reasoning/differential-privacy/index.js.map +1 -0
  69. package/dist/reasoning/mechanism-design/auctions.d.ts +49 -0
  70. package/dist/reasoning/mechanism-design/auctions.d.ts.map +1 -0
  71. package/dist/reasoning/mechanism-design/auctions.js +179 -0
  72. package/dist/reasoning/mechanism-design/auctions.js.map +1 -0
  73. package/dist/reasoning/mechanism-design/index.d.ts +5 -0
  74. package/dist/reasoning/mechanism-design/index.d.ts.map +1 -0
  75. package/dist/reasoning/mechanism-design/index.js +39 -0
  76. package/dist/reasoning/mechanism-design/index.js.map +1 -0
  77. package/dist/reasoning/mechanism-design/myerson.d.ts +64 -0
  78. package/dist/reasoning/mechanism-design/myerson.d.ts.map +1 -0
  79. package/dist/reasoning/mechanism-design/myerson.js +253 -0
  80. package/dist/reasoning/mechanism-design/myerson.js.map +1 -0
  81. package/dist/reasoning/mechanism-design/types.d.ts +44 -0
  82. package/dist/reasoning/mechanism-design/types.d.ts.map +1 -0
  83. package/dist/reasoning/mechanism-design/types.js +22 -0
  84. package/dist/reasoning/mechanism-design/types.js.map +1 -0
  85. package/dist/reasoning/mechanism-design/vcg.d.ts +29 -0
  86. package/dist/reasoning/mechanism-design/vcg.d.ts.map +1 -0
  87. package/dist/reasoning/mechanism-design/vcg.js +305 -0
  88. package/dist/reasoning/mechanism-design/vcg.js.map +1 -0
  89. package/dist/reasoning/probabilistic/distributions.d.ts +44 -0
  90. package/dist/reasoning/probabilistic/distributions.d.ts.map +1 -0
  91. package/dist/reasoning/probabilistic/distributions.js +207 -0
  92. package/dist/reasoning/probabilistic/distributions.js.map +1 -0
  93. package/dist/reasoning/probabilistic/examples.d.ts +31 -0
  94. package/dist/reasoning/probabilistic/examples.d.ts.map +1 -0
  95. package/dist/reasoning/probabilistic/examples.js +85 -0
  96. package/dist/reasoning/probabilistic/examples.js.map +1 -0
  97. package/dist/reasoning/probabilistic/index.d.ts +6 -0
  98. package/dist/reasoning/probabilistic/index.d.ts.map +1 -0
  99. package/dist/reasoning/probabilistic/index.js +42 -0
  100. package/dist/reasoning/probabilistic/index.js.map +1 -0
  101. package/dist/reasoning/probabilistic/inference.d.ts +45 -0
  102. package/dist/reasoning/probabilistic/inference.d.ts.map +1 -0
  103. package/dist/reasoning/probabilistic/inference.js +579 -0
  104. package/dist/reasoning/probabilistic/inference.js.map +1 -0
  105. package/dist/reasoning/probabilistic/types.d.ts +153 -0
  106. package/dist/reasoning/probabilistic/types.d.ts.map +1 -0
  107. package/dist/reasoning/probabilistic/types.js +37 -0
  108. package/dist/reasoning/probabilistic/types.js.map +1 -0
  109. package/dist/solver/smt-z3/index.d.ts +3 -0
  110. package/dist/solver/smt-z3/index.d.ts.map +1 -0
  111. package/dist/solver/smt-z3/index.js +11 -0
  112. package/dist/solver/smt-z3/index.js.map +1 -0
  113. package/dist/solver/smt-z3/types.d.ts +52 -0
  114. package/dist/solver/smt-z3/types.d.ts.map +1 -0
  115. package/dist/solver/smt-z3/types.js +6 -0
  116. package/dist/solver/smt-z3/types.js.map +1 -0
  117. package/dist/solver/smt-z3/z3-wasm-backend.d.ts +88 -0
  118. package/dist/solver/smt-z3/z3-wasm-backend.d.ts.map +1 -0
  119. package/dist/solver/smt-z3/z3-wasm-backend.js +437 -0
  120. package/dist/solver/smt-z3/z3-wasm-backend.js.map +1 -0
  121. package/dist/tests/logic/profiles/quantum/quantum.test.d.ts +2 -0
  122. package/dist/tests/logic/profiles/quantum/quantum.test.d.ts.map +1 -0
  123. package/dist/tests/logic/profiles/quantum/quantum.test.js +209 -0
  124. package/dist/tests/logic/profiles/quantum/quantum.test.js.map +1 -0
  125. package/dist/tests/proof-systems/certificate/certificate.test.d.ts +2 -0
  126. package/dist/tests/proof-systems/certificate/certificate.test.d.ts.map +1 -0
  127. package/dist/tests/proof-systems/certificate/certificate.test.js +449 -0
  128. package/dist/tests/proof-systems/certificate/certificate.test.js.map +1 -0
  129. package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts +2 -0
  130. package/dist/tests/reasoning/ban-logic/ban-logic.test.d.ts.map +1 -0
  131. package/dist/tests/reasoning/ban-logic/ban-logic.test.js +270 -0
  132. package/dist/tests/reasoning/ban-logic/ban-logic.test.js.map +1 -0
  133. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts +2 -0
  134. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.d.ts.map +1 -0
  135. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js +203 -0
  136. package/dist/tests/reasoning/combinatorial-games/combinatorial-games.test.js.map +1 -0
  137. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts +2 -0
  138. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.d.ts.map +1 -0
  139. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js +388 -0
  140. package/dist/tests/reasoning/differential-privacy/differential-privacy.test.js.map +1 -0
  141. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts +2 -0
  142. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.d.ts.map +1 -0
  143. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js +290 -0
  144. package/dist/tests/reasoning/mechanism-design/mechanism-design.test.js.map +1 -0
  145. package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts +2 -0
  146. package/dist/tests/reasoning/probabilistic/probabilistic.test.d.ts.map +1 -0
  147. package/dist/tests/reasoning/probabilistic/probabilistic.test.js +370 -0
  148. package/dist/tests/reasoning/probabilistic/probabilistic.test.js.map +1 -0
  149. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts +2 -0
  150. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.d.ts.map +1 -0
  151. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js +394 -0
  152. package/dist/tests/solver/smt-z3/z3-wasm-backend.test.js.map +1 -0
  153. package/dist/tests/tooling/mathlib/mathlib.test.d.ts +2 -0
  154. package/dist/tests/tooling/mathlib/mathlib.test.d.ts.map +1 -0
  155. package/dist/tests/tooling/mathlib/mathlib.test.js +214 -0
  156. package/dist/tests/tooling/mathlib/mathlib.test.js.map +1 -0
  157. package/dist/tests/tooling/proof-guidance/features.test.d.ts +2 -0
  158. package/dist/tests/tooling/proof-guidance/features.test.d.ts.map +1 -0
  159. package/dist/tests/tooling/proof-guidance/features.test.js +72 -0
  160. package/dist/tests/tooling/proof-guidance/features.test.js.map +1 -0
  161. package/dist/tests/tooling/proof-guidance/model.test.d.ts +2 -0
  162. package/dist/tests/tooling/proof-guidance/model.test.d.ts.map +1 -0
  163. package/dist/tests/tooling/proof-guidance/model.test.js +165 -0
  164. package/dist/tests/tooling/proof-guidance/model.test.js.map +1 -0
  165. package/dist/tests/tooling/proof-guidance/search.test.d.ts +2 -0
  166. package/dist/tests/tooling/proof-guidance/search.test.d.ts.map +1 -0
  167. package/dist/tests/tooling/proof-guidance/search.test.js +238 -0
  168. package/dist/tests/tooling/proof-guidance/search.test.js.map +1 -0
  169. package/dist/tests/type-theory/cubical/cubical.test.d.ts +2 -0
  170. package/dist/tests/type-theory/cubical/cubical.test.d.ts.map +1 -0
  171. package/dist/tests/type-theory/cubical/cubical.test.js +207 -0
  172. package/dist/tests/type-theory/cubical/cubical.test.js.map +1 -0
  173. package/dist/tests/type-theory/effects/effects.test.d.ts +2 -0
  174. package/dist/tests/type-theory/effects/effects.test.d.ts.map +1 -0
  175. package/dist/tests/type-theory/effects/effects.test.js +242 -0
  176. package/dist/tests/type-theory/effects/effects.test.js.map +1 -0
  177. package/dist/tooling/mathlib/group.d.ts +27 -0
  178. package/dist/tooling/mathlib/group.d.ts.map +1 -0
  179. package/dist/tooling/mathlib/group.js +89 -0
  180. package/dist/tooling/mathlib/group.js.map +1 -0
  181. package/dist/tooling/mathlib/index.d.ts +8 -0
  182. package/dist/tooling/mathlib/index.d.ts.map +1 -0
  183. package/dist/tooling/mathlib/index.js +40 -0
  184. package/dist/tooling/mathlib/index.js.map +1 -0
  185. package/dist/tooling/mathlib/instances.d.ts +29 -0
  186. package/dist/tooling/mathlib/instances.d.ts.map +1 -0
  187. package/dist/tooling/mathlib/instances.js +139 -0
  188. package/dist/tooling/mathlib/instances.js.map +1 -0
  189. package/dist/tooling/mathlib/lemmas.d.ts +3 -0
  190. package/dist/tooling/mathlib/lemmas.d.ts.map +1 -0
  191. package/dist/tooling/mathlib/lemmas.js +72 -0
  192. package/dist/tooling/mathlib/lemmas.js.map +1 -0
  193. package/dist/tooling/mathlib/order.d.ts +29 -0
  194. package/dist/tooling/mathlib/order.d.ts.map +1 -0
  195. package/dist/tooling/mathlib/order.js +91 -0
  196. package/dist/tooling/mathlib/order.js.map +1 -0
  197. package/dist/tooling/mathlib/ring.d.ts +15 -0
  198. package/dist/tooling/mathlib/ring.d.ts.map +1 -0
  199. package/dist/tooling/mathlib/ring.js +91 -0
  200. package/dist/tooling/mathlib/ring.js.map +1 -0
  201. package/dist/tooling/mathlib/types.d.ts +62 -0
  202. package/dist/tooling/mathlib/types.d.ts.map +1 -0
  203. package/dist/tooling/mathlib/types.js +7 -0
  204. package/dist/tooling/mathlib/types.js.map +1 -0
  205. package/dist/tooling/proof-guidance/features.d.ts +10 -0
  206. package/dist/tooling/proof-guidance/features.d.ts.map +1 -0
  207. package/dist/tooling/proof-guidance/features.js +97 -0
  208. package/dist/tooling/proof-guidance/features.js.map +1 -0
  209. package/dist/tooling/proof-guidance/index.d.ts +5 -0
  210. package/dist/tooling/proof-guidance/index.d.ts.map +1 -0
  211. package/dist/tooling/proof-guidance/index.js +25 -0
  212. package/dist/tooling/proof-guidance/index.js.map +1 -0
  213. package/dist/tooling/proof-guidance/model.d.ts +42 -0
  214. package/dist/tooling/proof-guidance/model.d.ts.map +1 -0
  215. package/dist/tooling/proof-guidance/model.js +149 -0
  216. package/dist/tooling/proof-guidance/model.js.map +1 -0
  217. package/dist/tooling/proof-guidance/search.d.ts +7 -0
  218. package/dist/tooling/proof-guidance/search.d.ts.map +1 -0
  219. package/dist/tooling/proof-guidance/search.js +102 -0
  220. package/dist/tooling/proof-guidance/search.js.map +1 -0
  221. package/dist/tooling/proof-guidance/types.d.ts +77 -0
  222. package/dist/tooling/proof-guidance/types.d.ts.map +1 -0
  223. package/dist/tooling/proof-guidance/types.js +8 -0
  224. package/dist/tooling/proof-guidance/types.js.map +1 -0
  225. package/dist/type-theory/cubical/equality.d.ts +4 -0
  226. package/dist/type-theory/cubical/equality.d.ts.map +1 -0
  227. package/dist/type-theory/cubical/equality.js +78 -0
  228. package/dist/type-theory/cubical/equality.js.map +1 -0
  229. package/dist/type-theory/cubical/index.d.ts +14 -0
  230. package/dist/type-theory/cubical/index.d.ts.map +1 -0
  231. package/dist/type-theory/cubical/index.js +71 -0
  232. package/dist/type-theory/cubical/index.js.map +1 -0
  233. package/dist/type-theory/cubical/infer.d.ts +18 -0
  234. package/dist/type-theory/cubical/infer.d.ts.map +1 -0
  235. package/dist/type-theory/cubical/infer.js +241 -0
  236. package/dist/type-theory/cubical/infer.js.map +1 -0
  237. package/dist/type-theory/cubical/interval.d.ts +12 -0
  238. package/dist/type-theory/cubical/interval.d.ts.map +1 -0
  239. package/dist/type-theory/cubical/interval.js +118 -0
  240. package/dist/type-theory/cubical/interval.js.map +1 -0
  241. package/dist/type-theory/cubical/normalize.d.ts +5 -0
  242. package/dist/type-theory/cubical/normalize.d.ts.map +1 -0
  243. package/dist/type-theory/cubical/normalize.js +191 -0
  244. package/dist/type-theory/cubical/normalize.js.map +1 -0
  245. package/dist/type-theory/cubical/path-algebra.d.ts +12 -0
  246. package/dist/type-theory/cubical/path-algebra.d.ts.map +1 -0
  247. package/dist/type-theory/cubical/path-algebra.js +109 -0
  248. package/dist/type-theory/cubical/path-algebra.js.map +1 -0
  249. package/dist/type-theory/cubical/substitute.d.ts +3 -0
  250. package/dist/type-theory/cubical/substitute.d.ts.map +1 -0
  251. package/dist/type-theory/cubical/substitute.js +109 -0
  252. package/dist/type-theory/cubical/substitute.js.map +1 -0
  253. package/dist/type-theory/cubical/types.d.ts +77 -0
  254. package/dist/type-theory/cubical/types.d.ts.map +1 -0
  255. package/dist/type-theory/cubical/types.js +258 -0
  256. package/dist/type-theory/cubical/types.js.map +1 -0
  257. package/dist/type-theory/effects/core.d.ts +27 -0
  258. package/dist/type-theory/effects/core.d.ts.map +1 -0
  259. package/dist/type-theory/effects/core.js +79 -0
  260. package/dist/type-theory/effects/core.js.map +1 -0
  261. package/dist/type-theory/effects/exception.d.ts +18 -0
  262. package/dist/type-theory/effects/exception.d.ts.map +1 -0
  263. package/dist/type-theory/effects/exception.js +59 -0
  264. package/dist/type-theory/effects/exception.js.map +1 -0
  265. package/dist/type-theory/effects/index.d.ts +11 -0
  266. package/dist/type-theory/effects/index.d.ts.map +1 -0
  267. package/dist/type-theory/effects/index.js +50 -0
  268. package/dist/type-theory/effects/index.js.map +1 -0
  269. package/dist/type-theory/effects/reader.d.ts +20 -0
  270. package/dist/type-theory/effects/reader.d.ts.map +1 -0
  271. package/dist/type-theory/effects/reader.js +62 -0
  272. package/dist/type-theory/effects/reader.js.map +1 -0
  273. package/dist/type-theory/effects/state.d.ts +31 -0
  274. package/dist/type-theory/effects/state.d.ts.map +1 -0
  275. package/dist/type-theory/effects/state.js +91 -0
  276. package/dist/type-theory/effects/state.js.map +1 -0
  277. package/dist/type-theory/effects/types.d.ts +45 -0
  278. package/dist/type-theory/effects/types.d.ts.map +1 -0
  279. package/dist/type-theory/effects/types.js +21 -0
  280. package/dist/type-theory/effects/types.js.map +1 -0
  281. package/dist/type-theory/effects/writer.d.ts +30 -0
  282. package/dist/type-theory/effects/writer.d.ts.map +1 -0
  283. package/dist/type-theory/effects/writer.js +79 -0
  284. package/dist/type-theory/effects/writer.js.map +1 -0
  285. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auctions.js","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/auctions.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,kEAAkE;AAClE,+DAA+D;AAC/D,EAAE;AACF,uEAAuE;AACvE,qEAAqE;AACrE,8DAA8D;;AA2B9D,4CAIC;AAUD,8CAsBC;AAkBD,wCAkCC;AAeD,oCAiCC;AA/JD,kEAAkE;AAClE,SAAS,UAAU,CAAC,IAAyB;IAC3C,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,OAAO,GAAG,CAAC,QAAQ,CAAC;IACxB,yDAAyD;IACzD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC;YAChB,OAAO,GAAG,CAAC,CAAC;YACZ,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IACD,IAAI,OAAO,IAAI,CAAC,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IACjE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;AAClC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAC,IAAyB;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACrD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,IAAyB;IACzD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAExD,iDAAiD;IACjD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;YACd,MAAM,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,KAAK,GAAG,CAAC,CAAC;YACV,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;YACtB,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnE,qEAAqE;IACrE,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,GAAG,CAAC,CAAC;IAC3B,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,cAAc,CAAC,IAAyB,EAAE,SAAiB;IACzE,IAAI,SAAS,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC7E,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAExD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC;IACtB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC;YACd,MAAM,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,KAAK,GAAG,CAAC,CAAC;YACV,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC;YACtB,MAAM,GAAG,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IACD,IAAI,KAAK,IAAI,CAAC,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnE,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,GAAG,CAAC,CAAC;IAE3B,sEAAsE;IACtE,oEAAoE;IACpE,mEAAmE;IACnE,IAAI,OAAe,CAAC;IACpB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC;IAC3D,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC;IACpC,CAAC;IACD,IAAI,OAAO,GAAG,KAAK;QAAE,OAAO,GAAG,KAAK,CAAC;IACrC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,YAAY,CAC1B,YAAoB,EACpB,OAA4B,EAC5B,SAAiB;IAEjB,IAAI,SAAS,IAAI,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;IAC3E,IAAI,YAAY,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACjF,MAAM,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAExD,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,iEAAiE;IACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IACzD,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC;QAC5C,gEAAgE;QAChE,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,QAAQ,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,KAAK,GAAG,KAAK,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;gBAC3C,YAAY,GAAG,CAAC,CAAC;gBACjB,SAAS,GAAG,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QACD,IAAI,SAAS,KAAK,EAAE,EAAE,CAAC;YACrB,8DAA8D;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;QACxC,CAAC;QACD,KAAK,IAAI,SAAS,CAAC;QACnB,IAAI,KAAK,GAAG,CAAC;YAAE,MAAM;IACvB,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACpC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export type { Agent, MechanismOutcome, AuctionResult, SealedBidAuction, BidderDistribution, } from './types';
2
+ export { vcgMechanism, socialWelfare, isStrategyProof } from './vcg';
3
+ export { firstPriceSealed, secondPriceSealed, englishAuction, dutchAuction } from './auctions';
4
+ export { myersonOptimal, virtualValuation, findReserve, expectedRevenue, sampleFromDistribution, uniformDistribution, } from './myerson';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/index.ts"],"names":[],"mappings":"AAoBA,YAAY,EACV,KAAK,EACL,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/F,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Mechanism design — barrel público
4
+ // ============================================================
5
+ //
6
+ // Implementación de los mecanismos canónicos de la teoría:
7
+ //
8
+ // - VCG (Vickrey-Clarke-Groves): allocation que maximiza welfare,
9
+ // pagos por externalidad. DSIC.
10
+ // - First-price sealed-bid: ganador paga su bid.
11
+ // - Second-price sealed-bid (Vickrey): ganador paga el segundo
12
+ // precio. DSIC. Coincide con VCG para 1 item.
13
+ // - English ascending: reloj sube, sale el último parado.
14
+ // - Dutch descending: reloj baja, gana el primero en aceptar.
15
+ // - Myerson optimal auction: maximiza expected revenue via virtual
16
+ // valuations + reserve price.
17
+ //
18
+ // Helpers:
19
+ // - socialWelfare, isStrategyProof (empírico)
20
+ // - virtualValuation, expectedRevenue (Monte Carlo)
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.uniformDistribution = exports.sampleFromDistribution = exports.expectedRevenue = exports.findReserve = exports.virtualValuation = exports.myersonOptimal = exports.dutchAuction = exports.englishAuction = exports.secondPriceSealed = exports.firstPriceSealed = exports.isStrategyProof = exports.socialWelfare = exports.vcgMechanism = void 0;
23
+ var vcg_1 = require("./vcg");
24
+ Object.defineProperty(exports, "vcgMechanism", { enumerable: true, get: function () { return vcg_1.vcgMechanism; } });
25
+ Object.defineProperty(exports, "socialWelfare", { enumerable: true, get: function () { return vcg_1.socialWelfare; } });
26
+ Object.defineProperty(exports, "isStrategyProof", { enumerable: true, get: function () { return vcg_1.isStrategyProof; } });
27
+ var auctions_1 = require("./auctions");
28
+ Object.defineProperty(exports, "firstPriceSealed", { enumerable: true, get: function () { return auctions_1.firstPriceSealed; } });
29
+ Object.defineProperty(exports, "secondPriceSealed", { enumerable: true, get: function () { return auctions_1.secondPriceSealed; } });
30
+ Object.defineProperty(exports, "englishAuction", { enumerable: true, get: function () { return auctions_1.englishAuction; } });
31
+ Object.defineProperty(exports, "dutchAuction", { enumerable: true, get: function () { return auctions_1.dutchAuction; } });
32
+ var myerson_1 = require("./myerson");
33
+ Object.defineProperty(exports, "myersonOptimal", { enumerable: true, get: function () { return myerson_1.myersonOptimal; } });
34
+ Object.defineProperty(exports, "virtualValuation", { enumerable: true, get: function () { return myerson_1.virtualValuation; } });
35
+ Object.defineProperty(exports, "findReserve", { enumerable: true, get: function () { return myerson_1.findReserve; } });
36
+ Object.defineProperty(exports, "expectedRevenue", { enumerable: true, get: function () { return myerson_1.expectedRevenue; } });
37
+ Object.defineProperty(exports, "sampleFromDistribution", { enumerable: true, get: function () { return myerson_1.sampleFromDistribution; } });
38
+ Object.defineProperty(exports, "uniformDistribution", { enumerable: true, get: function () { return myerson_1.uniformDistribution; } });
39
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/index.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,oCAAoC;AACpC,+DAA+D;AAC/D,EAAE;AACF,2DAA2D;AAC3D,EAAE;AACF,oEAAoE;AACpE,oCAAoC;AACpC,mDAAmD;AACnD,iEAAiE;AACjE,kDAAkD;AAClD,4DAA4D;AAC5D,gEAAgE;AAChE,qEAAqE;AACrE,kCAAkC;AAClC,EAAE;AACF,WAAW;AACX,gDAAgD;AAChD,sDAAsD;;;AAUtD,6BAAqE;AAA5D,mGAAA,YAAY,OAAA;AAAE,oGAAA,aAAa,OAAA;AAAE,sGAAA,eAAe,OAAA;AAErD,uCAA+F;AAAtF,4GAAA,gBAAgB,OAAA;AAAE,6GAAA,iBAAiB,OAAA;AAAE,0GAAA,cAAc,OAAA;AAAE,wGAAA,YAAY,OAAA;AAE1E,qCAOmB;AANjB,yGAAA,cAAc,OAAA;AACd,2GAAA,gBAAgB,OAAA;AAChB,sGAAA,WAAW,OAAA;AACX,0GAAA,eAAe,OAAA;AACf,iHAAA,sBAAsB,OAAA;AACtB,8GAAA,mBAAmB,OAAA"}
@@ -0,0 +1,64 @@
1
+ import type { BidderDistribution, AuctionResult } from './types';
2
+ /**
3
+ * Virtual valuation φ(v) = v - (1 - F(v)) / f(v).
4
+ *
5
+ * Si f(v) ≈ 0 retornamos +Infinity (límite del término penalty).
6
+ * Si v cae fuera del dominio, devolvemos -Infinity (no participa).
7
+ */
8
+ export declare function virtualValuation(v: number, dist: BidderDistribution): number;
9
+ /**
10
+ * Resuelve φ(r) = 0 por bisección en el dominio de la distribución.
11
+ *
12
+ * Si φ(lo) >= 0, devuelve lo. Si φ(hi) <= 0, devuelve hi. Si no, busca
13
+ * con tolerancia 1e-8 en 80 iteraciones.
14
+ *
15
+ * Asume regularidad de la distribución (φ monótona creciente). En
16
+ * uniform[0,1]: φ(v) = 2v - 1, raíz en 1/2. ✔
17
+ */
18
+ export declare function findReserve(dist: BidderDistribution): number;
19
+ /**
20
+ * Myerson optimal auction (single-item).
21
+ *
22
+ * - Si todos los φ_i(bid_i) son negativos → no se vende. winner='',
23
+ * payment=0, reserve = φ_i^(-1)(0) del primer bidder (referencia).
24
+ *
25
+ * - Si el ganador es bidder i (max φ), paga el menor v' tal que
26
+ * reportar v' lo habría hecho ganar:
27
+ *
28
+ * paymentValue = max( reserve_i, min_v { v : φ_i(v) >= max_{j≠i} φ_j(bid_j) } )
29
+ *
30
+ * En el caso IID con simétria, esto es:
31
+ * paymentValue = max( reserve, secondHighestBid )
32
+ *
33
+ * que es exactamente Vickrey con reserve.
34
+ */
35
+ export declare function myersonOptimal(bids: Map<string, number>, distributions: Map<string, BidderDistribution>): {
36
+ winner: string;
37
+ payment: number;
38
+ reserve: number;
39
+ };
40
+ /**
41
+ * Muestrea una valuation de una distribución por inverse-CDF
42
+ * sampling. Usamos bisección sobre F.
43
+ */
44
+ export declare function sampleFromDistribution(dist: BidderDistribution, u: number): number;
45
+ /**
46
+ * Expected revenue de un mechanism via Monte Carlo: muestreamos
47
+ * `samples` perfiles de bids (cada bidder draw de su distribución
48
+ * independientemente, asumiendo truthful bidding para 2nd-price /
49
+ * Myerson, o equilibrium bidding aproximado para 1st-price), corremos
50
+ * el mechanism y promediamos el payment del ganador.
51
+ *
52
+ * Nota: para 1st-price con IID uniform[0,1] y n bidders, el bid
53
+ * de equilibrio es b(v) = (n-1)/n · v. El caller debe pasar un
54
+ * mechanism que ya implemente ese mapping si quiere comparar contra
55
+ * 2nd-price truthful.
56
+ */
57
+ export declare function expectedRevenue(mechanism: (bids: Map<string, number>) => AuctionResult, distributions: Map<string, BidderDistribution>, samples?: number): number;
58
+ /**
59
+ * Helper: distribución uniform sobre [a, b]. Útil para tests.
60
+ * (No exportada en index — solo helper interno aquí; los tests
61
+ * pueden importarlo directamente.)
62
+ */
63
+ export declare function uniformDistribution(a: number, b: number): BidderDistribution;
64
+ //# sourceMappingURL=myerson.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myerson.d.ts","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/myerson.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEjE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAW5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,CAiB5D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAC7C;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoDtD;AAyBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAclF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,aAAa,EACvD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAC9C,OAAO,GAAE,MAAa,GACrB,MAAM,CAeR;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAe5E"}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Myerson optimal auction + revenue equivalence
4
+ // ============================================================
5
+ //
6
+ // Myerson (1981): para vender 1 item a `n` bidders independientes con
7
+ // valuations privadas de distribuciones regulares F_i, el mechanism
8
+ // óptimo en expected revenue es:
9
+ //
10
+ // 1. Calcular virtual valuation φ_i(v) = v - (1 - F_i(v)) / f_i(v).
11
+ // 2. Asignar al bidder con MAYOR φ_i (si > 0, si no, no asignar →
12
+ // reserve price implícito r_i tal que φ_i(r_i) = 0).
13
+ // 3. Cobrar al ganador el menor bid que lo habría hecho ganar
14
+ // (Vickrey-style payment sobre virtual valuations).
15
+ //
16
+ // Para distribuciones simétricas (todos los bidders i.i.d. con misma
17
+ // F), φ es la misma función para todos; el mechanism colapsa a una
18
+ // second-price auction con reserve price r = φ^(-1)(0).
19
+ //
20
+ // Revenue equivalence theorem: en cualquier mechanism que (a) asigne
21
+ // al bidder con mayor valuation y (b) dé utilidad 0 al bidder con
22
+ // valuation 0 ("regularity boundary"), el expected revenue es el
23
+ // mismo. → 1st-price y 2nd-price tienen igual revenue esperado bajo
24
+ // IID.
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.virtualValuation = virtualValuation;
27
+ exports.findReserve = findReserve;
28
+ exports.myersonOptimal = myersonOptimal;
29
+ exports.sampleFromDistribution = sampleFromDistribution;
30
+ exports.expectedRevenue = expectedRevenue;
31
+ exports.uniformDistribution = uniformDistribution;
32
+ /**
33
+ * Virtual valuation φ(v) = v - (1 - F(v)) / f(v).
34
+ *
35
+ * Si f(v) ≈ 0 retornamos +Infinity (límite del término penalty).
36
+ * Si v cae fuera del dominio, devolvemos -Infinity (no participa).
37
+ */
38
+ function virtualValuation(v, dist) {
39
+ const [lo, hi] = dist.domain;
40
+ if (v < lo || v > hi)
41
+ return -Infinity;
42
+ const f = dist.pdf(v);
43
+ if (!Number.isFinite(f) || Math.abs(f) < 1e-15) {
44
+ // En el borde superior, F(v) = 1 → (1-F)/f = 0/0; tomamos v como límite.
45
+ if (Math.abs(1 - dist.cdf(v)) < 1e-12)
46
+ return v;
47
+ return v;
48
+ }
49
+ const F = dist.cdf(v);
50
+ return v - (1 - F) / f;
51
+ }
52
+ /**
53
+ * Resuelve φ(r) = 0 por bisección en el dominio de la distribución.
54
+ *
55
+ * Si φ(lo) >= 0, devuelve lo. Si φ(hi) <= 0, devuelve hi. Si no, busca
56
+ * con tolerancia 1e-8 en 80 iteraciones.
57
+ *
58
+ * Asume regularidad de la distribución (φ monótona creciente). En
59
+ * uniform[0,1]: φ(v) = 2v - 1, raíz en 1/2. ✔
60
+ */
61
+ function findReserve(dist) {
62
+ const [lo, hi] = dist.domain;
63
+ const phiLo = virtualValuation(lo, dist);
64
+ const phiHi = virtualValuation(hi, dist);
65
+ if (phiLo >= 0)
66
+ return lo;
67
+ if (phiHi <= 0)
68
+ return hi;
69
+ let l = lo;
70
+ let h = hi;
71
+ for (let i = 0; i < 80; i++) {
72
+ const m = (l + h) / 2;
73
+ const phi = virtualValuation(m, dist);
74
+ if (phi > 0)
75
+ h = m;
76
+ else
77
+ l = m;
78
+ if (h - l < 1e-9)
79
+ break;
80
+ }
81
+ return (l + h) / 2;
82
+ }
83
+ /**
84
+ * Myerson optimal auction (single-item).
85
+ *
86
+ * - Si todos los φ_i(bid_i) son negativos → no se vende. winner='',
87
+ * payment=0, reserve = φ_i^(-1)(0) del primer bidder (referencia).
88
+ *
89
+ * - Si el ganador es bidder i (max φ), paga el menor v' tal que
90
+ * reportar v' lo habría hecho ganar:
91
+ *
92
+ * paymentValue = max( reserve_i, min_v { v : φ_i(v) >= max_{j≠i} φ_j(bid_j) } )
93
+ *
94
+ * En el caso IID con simétria, esto es:
95
+ * paymentValue = max( reserve, secondHighestBid )
96
+ *
97
+ * que es exactamente Vickrey con reserve.
98
+ */
99
+ function myersonOptimal(bids, distributions) {
100
+ const ids = [...bids.keys()].sort();
101
+ if (ids.length === 0) {
102
+ return { winner: '', payment: 0, reserve: 0 };
103
+ }
104
+ // Buscamos el bidder con mayor virtual valuation positivo.
105
+ let winner = '';
106
+ let bestPhi = 0; // estricto > 0 — el reserve viene de φ(r) = 0
107
+ let secondPhi = 0;
108
+ for (const id of ids) {
109
+ const b = bids.get(id) ?? 0;
110
+ const dist = distributions.get(id);
111
+ if (!dist)
112
+ continue;
113
+ const phi = virtualValuation(b, dist);
114
+ if (phi > bestPhi) {
115
+ secondPhi = bestPhi;
116
+ bestPhi = phi;
117
+ winner = id;
118
+ }
119
+ else if (phi > secondPhi) {
120
+ secondPhi = phi;
121
+ }
122
+ }
123
+ // Reserve de referencia: del primer bidder (todos los i.i.d. comparten).
124
+ const firstDist = distributions.get(ids[0]);
125
+ if (!firstDist) {
126
+ return { winner: '', payment: 0, reserve: 0 };
127
+ }
128
+ const referenceReserve = findReserve(firstDist);
129
+ if (winner === '') {
130
+ return { winner: '', payment: 0, reserve: referenceReserve };
131
+ }
132
+ const winnerDist = distributions.get(winner);
133
+ if (!winnerDist) {
134
+ return { winner: '', payment: 0, reserve: referenceReserve };
135
+ }
136
+ const winnerReserve = findReserve(winnerDist);
137
+ // Pago: el menor valor v* tal que φ_winner(v*) >= max(secondPhi, 0).
138
+ // En IID: φ es monótona, así que invertimos por bisección.
139
+ const targetPhi = Math.max(secondPhi, 0);
140
+ let payment = invertVirtual(winnerDist, targetPhi);
141
+ if (payment < winnerReserve)
142
+ payment = winnerReserve;
143
+ // Sanity: el pago no puede exceder el bid del ganador.
144
+ const winnerBid = bids.get(winner) ?? 0;
145
+ if (payment > winnerBid)
146
+ payment = winnerBid;
147
+ return { winner, payment, reserve: winnerReserve };
148
+ }
149
+ /**
150
+ * Inverte φ: encuentra v* tal que φ(v*) = target. Asume regularidad.
151
+ * Si target <= φ(lo), devuelve lo. Si target >= φ(hi), devuelve hi.
152
+ */
153
+ function invertVirtual(dist, target) {
154
+ const [lo, hi] = dist.domain;
155
+ const phiLo = virtualValuation(lo, dist);
156
+ const phiHi = virtualValuation(hi, dist);
157
+ if (target <= phiLo)
158
+ return lo;
159
+ if (target >= phiHi)
160
+ return hi;
161
+ let l = lo;
162
+ let h = hi;
163
+ for (let i = 0; i < 80; i++) {
164
+ const m = (l + h) / 2;
165
+ const phi = virtualValuation(m, dist);
166
+ if (phi >= target)
167
+ h = m;
168
+ else
169
+ l = m;
170
+ if (h - l < 1e-9)
171
+ break;
172
+ }
173
+ return (l + h) / 2;
174
+ }
175
+ /**
176
+ * Muestrea una valuation de una distribución por inverse-CDF
177
+ * sampling. Usamos bisección sobre F.
178
+ */
179
+ function sampleFromDistribution(dist, u) {
180
+ // u ∈ [0,1]. Encontrar v con F(v) = u.
181
+ const [lo, hi] = dist.domain;
182
+ if (u <= 0)
183
+ return lo;
184
+ if (u >= 1)
185
+ return hi;
186
+ let l = lo;
187
+ let h = hi;
188
+ for (let i = 0; i < 80; i++) {
189
+ const m = (l + h) / 2;
190
+ if (dist.cdf(m) > u)
191
+ h = m;
192
+ else
193
+ l = m;
194
+ if (h - l < 1e-9)
195
+ break;
196
+ }
197
+ return (l + h) / 2;
198
+ }
199
+ /**
200
+ * Expected revenue de un mechanism via Monte Carlo: muestreamos
201
+ * `samples` perfiles de bids (cada bidder draw de su distribución
202
+ * independientemente, asumiendo truthful bidding para 2nd-price /
203
+ * Myerson, o equilibrium bidding aproximado para 1st-price), corremos
204
+ * el mechanism y promediamos el payment del ganador.
205
+ *
206
+ * Nota: para 1st-price con IID uniform[0,1] y n bidders, el bid
207
+ * de equilibrio es b(v) = (n-1)/n · v. El caller debe pasar un
208
+ * mechanism que ya implemente ese mapping si quiere comparar contra
209
+ * 2nd-price truthful.
210
+ */
211
+ function expectedRevenue(mechanism, distributions, samples = 5000) {
212
+ const ids = [...distributions.keys()].sort();
213
+ let totalRevenue = 0;
214
+ for (let s = 0; s < samples; s++) {
215
+ const bids = new Map();
216
+ for (const id of ids) {
217
+ const dist = distributions.get(id);
218
+ if (!dist)
219
+ continue;
220
+ const u = Math.random();
221
+ bids.set(id, sampleFromDistribution(dist, u));
222
+ }
223
+ const r = mechanism(bids);
224
+ totalRevenue += r.payment;
225
+ }
226
+ return totalRevenue / samples;
227
+ }
228
+ /**
229
+ * Helper: distribución uniform sobre [a, b]. Útil para tests.
230
+ * (No exportada en index — solo helper interno aquí; los tests
231
+ * pueden importarlo directamente.)
232
+ */
233
+ function uniformDistribution(a, b) {
234
+ if (b <= a)
235
+ throw new Error('uniformDistribution: b must be > a');
236
+ const span = b - a;
237
+ return {
238
+ domain: [a, b],
239
+ cdf: (v) => {
240
+ if (v <= a)
241
+ return 0;
242
+ if (v >= b)
243
+ return 1;
244
+ return (v - a) / span;
245
+ },
246
+ pdf: (v) => {
247
+ if (v < a || v > b)
248
+ return 0;
249
+ return 1 / span;
250
+ },
251
+ };
252
+ }
253
+ //# sourceMappingURL=myerson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"myerson.js","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/myerson.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Un agente con valuation sobre outcomes. Cada outcome se identifica
3
+ * con un string (típicamente itemId, pero puede codificar bundles
4
+ * para combinatorial auctions, e.g. "A+B").
5
+ */
6
+ export interface Agent {
7
+ id: string;
8
+ /** valuation.get(outcome) = utilidad si recibe ese outcome. Default 0 si missing. */
9
+ valuation: Map<string, number>;
10
+ }
11
+ /**
12
+ * Resultado de un mechanism: quién se queda con qué y cuánto paga.
13
+ */
14
+ export interface MechanismOutcome {
15
+ /** allocation.get(agentId) = item que recibe (o undefined si no recibe). */
16
+ allocation: Map<string, string>;
17
+ /** payments.get(agentId) = pago del agente al mechanism (>= 0 típicamente). */
18
+ payments: Map<string, number>;
19
+ }
20
+ /**
21
+ * Resultado de una single-item auction.
22
+ */
23
+ export interface AuctionResult {
24
+ /** Id del ganador (o '' si nadie supera el reserve / no hay bids). */
25
+ winner: string;
26
+ /** Pago del ganador. 0 si no hubo ganador. */
27
+ payment: number;
28
+ }
29
+ /**
30
+ * Auction con bids sealed (cada bidder reporta un valor secreto).
31
+ */
32
+ export interface SealedBidAuction {
33
+ bids: Map<string, number>;
34
+ }
35
+ /**
36
+ * Distribución (i.i.d. por bidder) sobre la valuation. Necesitamos CDF
37
+ * y PDF en cerrado para Myerson; el dominio acota el soporte.
38
+ */
39
+ export interface BidderDistribution {
40
+ cdf: (v: number) => number;
41
+ pdf: (v: number) => number;
42
+ domain: [number, number];
43
+ }
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/types.ts"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,qFAAqF;IACrF,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,+EAA+E;IAC/E,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,8CAA8C;IAC9C,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC3B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // ============================================================
3
+ // Mechanism design — tipos compartidos
4
+ // ============================================================
5
+ //
6
+ // Modelamos mechanism design discreto sobre un conjunto finito de
7
+ // outcomes (típicamente: asignar ítems a agentes). Cada agente reporta
8
+ // una valuation `Map<outcomeId, number>`. El mechanism elige una
9
+ // allocation y cobra pagos.
10
+ //
11
+ // El bundle de un agente en una allocation es el conjunto de outcomes
12
+ // que se le asignan. Modelamos allocation como `Map<agentId, itemId>`
13
+ // para el caso single-unit (cada item a un solo agente). Para
14
+ // combinatorial auctions se generaliza con bundles, pero el `MechanismOutcome`
15
+ // público mantiene el tipo Map<string,string> según contrato.
16
+ //
17
+ // Los pagos son no-negativos cuando el mechanism es individually
18
+ // rational; aceptamos negativos en VCG con bundles porque las pivots
19
+ // pueden compensar (típicamente VCG cobra >= 0 si la valuation es
20
+ // monotónica, lo que asumimos por construcción de ejemplos).
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/types.ts"],"names":[],"mappings":";AAAA,+DAA+D;AAC/D,uCAAuC;AACvC,+DAA+D;AAC/D,EAAE;AACF,kEAAkE;AAClE,uEAAuE;AACvE,iEAAiE;AACjE,4BAA4B;AAC5B,EAAE;AACF,sEAAsE;AACtE,sEAAsE;AACtE,8DAA8D;AAC9D,+EAA+E;AAC/E,8DAA8D;AAC9D,EAAE;AACF,iEAAiE;AACjE,qEAAqE;AACrE,kEAAkE;AAClE,6DAA6D"}
@@ -0,0 +1,29 @@
1
+ import type { Agent, MechanismOutcome } from './types';
2
+ /**
3
+ * VCG mechanism: allocation maximiza welfare; pago de cada agente =
4
+ * externalidad = (welfare óptimo de los demás cuando él NO participa)
5
+ * - (welfare de los demás en la allocation elegida).
6
+ *
7
+ * Devuelve allocation y payments. Payments son ≥ 0 si valuations son
8
+ * monotónicas (las nuestras lo son).
9
+ */
10
+ export declare function vcgMechanism(agents: Agent[], items: string[]): MechanismOutcome;
11
+ /**
12
+ * Welfare social bajo una allocation: suma de valuations de los agentes
13
+ * por lo que recibieron.
14
+ */
15
+ export declare function socialWelfare(outcome: MechanismOutcome, agents: Agent[]): number;
16
+ /**
17
+ * Strategy-proofness empírica: tomamos `samples` reportes aleatorios de
18
+ * un agente (manteniendo a los demás truthful), corremos el mechanism,
19
+ * y verificamos que la utilidad del agente que miente no supere la
20
+ * utilidad reportando truthfully. Si para alguna sample el misreport
21
+ * mejora estrictamente, retornamos false.
22
+ *
23
+ * Utilidad cuasi-lineal: v(allocation_i) - payment_i.
24
+ *
25
+ * Esto es probabilístico: con `samples=0` no chequeamos nada y devolvemos
26
+ * true. Útil sobretodo para testing.
27
+ */
28
+ export declare function isStrategyProof(mechanism: (agents: Agent[]) => MechanismOutcome, samples?: number): boolean;
29
+ //# sourceMappingURL=vcg.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vcg.d.ts","sourceRoot":"","sources":["../../../src/reasoning/mechanism-design/vcg.ts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AA4KvD;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,gBAAgB,CA2B/E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAOhF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,gBAAgB,EAChD,OAAO,GAAE,MAAW,GACnB,OAAO,CAyDT"}