solver
How the Faebryk parameter solver works (Sets/Literals, Parameters, Expressions), the core invariants enforced during mutation, and practical workflows for debugging and extending the solver.
Installation
Pick a client and clone the repository into its skills directory.
Installation
About this skill
How the Faebryk parameter solver works (Sets/Literals, Parameters, Expressions), the core invariants enforced during mutation, and practical workflows for debugging and extending the solver.
How to use
Zainstaluj atopile i upewnij się, że masz dostęp do modułu solvera w
src/faebryk/core/solver/. Skill ten jest przeznaczony dla osób pracujących z kodem wewnętrznym atopile.Zapoznaj się z dokumentacją koncepcyjną w
src/faebryk/core/solver/README.md, aby zrozumieć podstawowe pojęcia: korelację zbiorów, grafy tylko do dołączania i kanonikalizację wyrażeń.Przeczytaj
src/faebryk/core/solver/symbolic/invariants.py, aby poznać dokładne niezmienniki egzekwowane podczas wstawiania wyrażeń — to kluczowe dla debugowania i modyfikacji solvera.Jeśli implementujesz nową funkcjonalność, zacznij od
src/faebryk/core/solver/defaultsolver.py(pętla iteracyjna, tryb terminalny vs nieerminalny) isrc/faebryk/core/solver/mutator.py(maszyna mutacji, transformacje, mapy mutacji).Użyj
DefaultSolverdo upraszczania systemów ograniczeń: zdefiniuj parametry numeryczne, ustaw ograniczenia za pomocą wyrażeń, a następnie wywołajsolver.simplify()z grafu i typografu, aby uzyskać mapę mutacji z uproszczonymi literałami.Debuguj problemy z wyrażeniami, śledząc tracebacki mutacji w
MutationMap— sprawdzaj, czy wyrażenia są w formie kanonicznej i czy wszystkie niezmienniki są spełnione na każdym etapie transformacji.