ZFL — Zero-trust Formal Language, the language of the studio (ZTL is the logic; ZFL is how you write for it)
Why a table and not a syntax
Everything you write here is one document: a list of NAMES, each saying where it stands with you, plus what you CLAIM about them. There is no genre to declare and no mode to pick. Which instruments answer — the numeric floor, the passport office, the ledger, the judge — follows from which cells you filled.
The one rule underneath
Truth is not granted on credit. A name is verified when a verification was produced, and the ground column is where you say what produced it. A name with nothing backing it is not false — it is unverified, which is an honest third answer and the reason this logic exists.
Asking for a number
Put `?` in a value and the row stops being an answer and becomes a question. `x = ?` with a claim of `x - 10 = 20` is answered: x is 30, and earned. This is the one cell that changes what the machine DOES — everywhere else you are telling it what you know, and here you are asking.
Where formulas survive, and the one cell that reads two ways
In two cells only. In GROUND, when a name is DEFINED by a formula over other names — that is how self-reference is written, and it is why the liar needs no special mode. And in CLAIM, which is what you are actually asserting. Note what the ground cell is doing: for a verified name it holds `inv-17`, an opaque name the machine never looks inside and which means nothing but its own identity; for a defined name it holds `~Tr(L)`, a formula the machine reads and evaluates. The status decides which, and the form asks again whenever you change it.
the columns of a row
| column | what it is | required | options / examples |
| name | what we call it; formulas use this | always | line · budget · L |
| means | what it MEANS for this to be true | no | the invoice line · this sentence is false |
| status | where it stands with us | always | verified · refuted · not verified · defined |
| ground | what backs it, or the formula defining it | in context | inv-17 · ~Tr(L) |
| dimension | does this SUPPORT the claim or PERMIT it | no | evidence (supports) · authority (permits) |
| kind of ground | a document unless you say otherwise | no | document · act (nothing to withdraw) · certificate (expires) · another row |
| expires at | the name of the event after which this ground no longer holds — another row | no | court_judgment · registry_recheck |
| value | a number, an interval [0,10], or ? for unknown | no | 1500 · [0,10] · ? |
| unit | only with a value; metres never meet roubles | no | RUB · m · m2 |
| scale | what it rounds to | no | exact · whole · hundredths · thirds |
| separate measurements | each occurrence is its own act of measuring | no | |
the document itself
| column | what it is | required | options / examples |
| admissible grounds | the grounds this document accepts, comma-separated. A row earning on a ground outside the list falls to unverified rather than to false. A tier may be given — 'master:story, perebor:act': story means 'so it was said', and what earns on it is marked. Empty: the gate says nothing | no | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| claim | what you are actually asserting | no | line <= budget · rain -> umbrella |
| ask | narrow the report; empty shows everything that applies | no | verdict · warranty · passport · stipulations · blast · brackets |
operators
& | and |
-> | if … then |
= | the same value as |
^ | exactly one of |
| | or |
~ | not |
Tr(x) | the value of the row x — this is how self-reference is written |
<= | at most |
>= | at least |
== | equal to |
< | less than |
> | greater than |
arithmetic
* | times |
+ | plus |
- | minus |
/ | divided by |
sum(a,b,…) | the sum of several — the same as a + b + … |
( ) | brackets, to say what goes first |
-x | a leading minus: the sign of a term, not the operation between two — `-x + 100 = 70` is a fair question and was not accepted until 2026-08-13 |
what can go in a value
1500 | a number you have measured or read off a document |
[0,10] | a box: somewhere in this range, and the machine keeps the range rather than picking a point. Both ends are INCLUDED; for a strict bound put it in the claim — `x > 0`. Write it backwards, [10,0], and you get E: the row names nothing, which is a verdict rather than a typo |
? | A QUESTION. You do not know it and you are asking. If the rest of the table determines it, the solver answers with the value AND the provenance it inherited — `x = 30, earned`. If it does not, you get told what would settle it. |
a worked example
| column | means | status | ground | value |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
admissible grounds: line <= budget
error codes
E_BADNAME | a name a formula could not use |
E_CLAIM | the claim does not parse |
E_DIM | a dimension outside the list — a ground either supports a claim or permits it |
E_DIM_CLASH | a ground carries one mark, not two: 'authority' cannot be combined with an act, a certificate or another row |
E_DUPNAME | the same name twice |
E_EMPTY | the table has no rows |
E_EXPIRY_NO_GROUND | a clock on a row that has no earned ground to lose |
E_FORMULA | the defining formula does not parse |
E_GROUND_SPACES | a ground with a space in it — a ground is one word, because it names a document |
E_KIND | a kind of ground outside the list |
E_NOGROUND | verified, refuted or defined, with nothing backing it |
E_NONAME | a row without a name |
E_OPEN_INTERVAL | an open bound like (0,10) — put the strictness in the claim instead |
E_SCALE | a scale that is not empty/int/decimalK/fracM, or out of bounds |
E_STATUS | a status outside the four |
E_UNIT | a unit that cannot be read — a word, optionally with a power (m2), joined by · or / |
E_UNKNOWN_NAME | a formula names a row that does not exist |
E_UNREADABLE | the instruments could not read the claim — the message says what they choked on |
E_VALUE_FORM | a value that is neither a number, an interval nor ? |
E_VALUE_SET | a choice between values, {0,10} — that is two rows, not one quantity |
W_NO_GLOSS | no gloss, so nobody can check the name means what it seems to |
W_UNIT_NO_VALUE | a unit with no value |
ZFL — Zero-trust Formal Language, язык студии (ZTL — сама логика, ZFL — то, как для неё пишут)
Почему таблица, а не синтаксис
Всё, что вы здесь пишете, — один документ: список ИМЁН, каждое из которых говорит, откуда оно у вас, плюс то, что вы про них УТВЕРЖДАЕТЕ. Никакого жанра объявлять не надо и режим выбирать не надо. Какие приборы ответят — числовой пол, паспортный стол, тетрадь, судья — следует из того, какие клетки вы заполнили.
Правило, лежащее под всем
Истина не даётся в кредит. Имя проверено, когда проверка произведена, и колонка «основание» — это место, где вы говорите, чем именно. Имя без основания не ложно — оно НЕ ПРОВЕРЕНО, и это честный третий ответ, ради которого вся эта логика и существует.
Как спросить число
Поставьте `?` в величину — и строка перестаёт быть ответом и становится вопросом. `x = ?` при утверждении `x - 10 = 20` получает ответ: x равен 30, и заработан. Это единственная клетка, которая меняет то, что машина ДЕЛАЕТ: везде вы сообщаете ей, что знаете, а здесь — спрашиваете.
Где остаются формулы, и клетка, которая читается двояко
Ровно в двух клетках. В ОСНОВАНИИ — когда имя ОПРЕДЕЛЕНО формулой через другие имена; так пишется самоссылка, и поэтому лжецу не нужен отдельный режим. И в УТВЕРЖДЕНИИ — том, что вы, собственно, заявляете. Заметьте, что делает клетка основания: у проверенного имени там `inv-17` — непрозрачное имя, внутрь которого машина не смотрит и которое не значит ничего, кроме собственного тождества; у определённого — `~Tr(L)`, формула, которую машина читает и вычисляет. Что именно там ждут, решает статус, и форма переспрашивает, как только вы его меняете.
колонки строки
| колонка | что это | обязательна | варианты / примеры |
| имя | как называем; им же пользуемся в формулах | всегда | line · budget · L |
| значит | что означает истинность этого имени | нет | the invoice line · this sentence is false |
| статус | откуда оно у нас | всегда | проверено · опровергнуто · не проверено · определено |
| основание | чем подтверждено или как определено | по условию | inv-17 · ~Tr(L) |
| измерение | оно ПОДПИРАЕТ утверждение или РАЗРЕШАЕТ его | нет | опора (подпирает) · разрешение (даёт право) |
| вид основания | документ, если не сказано иное | нет | документ · акт (отзывать нечего) · сертификат (истекает) · другая строка |
| истекает при | имя события, после которого это основание больше не держит — другая строка | нет | court_judgment · registry_recheck |
| величина | число, интервал [0,10] или ? для неизвестного | нет | 1500 · [0,10] · ? |
| единица | только с величиной; метры не встречаются с рублями | нет | RUB · m · m2 |
| шкала | до чего округляем | нет | точно · целые · сотые · трети |
| отдельные измерения | каждое вхождение — свой акт измерения | нет | |
сам документ
| колонка | что это | обязательна | варианты / примеры |
| допустимые основания | основания, которые этот документ признаёт, через запятую. Строка, заработавшая на основании вне списка, падает в непроверенное, а не в ложь. Можно указать ярус — «master:story, perebor:act»: story значит «так сказано», и заработавшее на нём будет помечено. Пусто — ворота молчат | нет | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| утверждение | что мы, собственно, заявляем | нет | line <= budget · rain -> umbrella |
| спросить | сузить отчёт; пусто — показывается всё применимое | нет | verdict · warranty · passport · stipulations · blast · brackets |
операторы
& | и |
-> | если … то |
= | то же значение, что |
^ | ровно одно из |
| | или |
~ | не |
Tr(x) | значение строки x — так пишется самоссылка |
<= | не больше |
>= | не меньше |
== | равно |
< | меньше |
> | больше |
арифметика
* | умножить |
+ | плюс |
- | минус |
/ | разделить |
sum(a,b,…) | сумма нескольких — то же, что a + b + … |
( ) | скобки — чтобы сказать, что раньше |
-x | минус в начале: знак самого члена, а не действие между двумя — `-x + 100 = 70` законный вопрос, и до 2026-08-13 он не принимался |
что можно писать в величине
1500 | число, которое вы измерили или прочли в документе |
[0,10] | коробка: где-то в этих пределах, и машина хранит пределы, а не выбирает точку. Обе границы ВКЛЮЧЕНЫ; строгую границу пишите в утверждении — `x > 0`. Напишете наоборот, [10,0], получите E: строка не называет ничего, и это вердикт, а не опечатка |
? | ВОПРОС. Вы его не знаете и спрашиваете. Если остальная таблица его определяет, решатель отвечает величиной И происхождением, которое она унаследовала — `x = 30, заработано`. Если не определяет — вам скажут, что это решит. |
разобранный пример
| колонка | значит | статус | основание | величина |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
допустимые основания: line <= budget
коды ошибок
E_BADNAME | имя, непригодное для формулы |
E_CLAIM | утверждение не разбирается |
E_DIM | измерение вне списка — основание либо подпирает утверждение, либо даёт на него право |
E_DIM_CLASH | основание несёт одну пометку, а не две: «разрешение» не сочетается с актом, сертификатом или другой строкой |
E_DUPNAME | имя повторяется |
E_EMPTY | в таблице нет строк |
E_EXPIRY_NO_GROUND | часы на строке, которой нечего терять: истекать может только заработанное |
E_FORMULA | определяющая формула не разбирается |
E_GROUND_SPACES | основание с пробелом — оно одно слово, потому что называет документ |
E_KIND | вид основания вне списка |
E_NOGROUND | проверено, опровергнуто или определено — но без основания |
E_NONAME | строка без имени |
E_OPEN_INTERVAL | открытая граница вроде (0,10) — строгость пишется в утверждении |
E_SCALE | шкала не пустая/int/decimalK/fracM либо вне границ |
E_STATUS | статус вне четырёх |
E_UNIT | единица, которую нельзя прочесть — слово, при желании со степенью (m2), соединяется через · или / |
E_UNKNOWN_NAME | формула называет несуществующую строку |
E_UNREADABLE | приборы не смогли прочесть утверждение — в сообщении сказано, на чём именно |
E_VALUE_FORM | величина, которая не число, не интервал и не ? |
E_VALUE_SET | выбор между величинами, {0,10} — это две строки, а не одна величина |
W_NO_GLOSS | нет пояснения — некому проверить, то ли значит имя |
W_UNIT_NO_VALUE | единица без величины |
ZFL — Zero-trust Formal Language, мова студії (ZTL — це логіка; ZFL — як для неї писати)
Чому таблиця, а не синтаксис
Усе, що ви тут пишете, — один документ: перелік ІМЕН, кожне каже, звідки воно у вас, плюс те, що ви про них СТВЕРДЖУЄТЕ. Немає жанру, який треба оголосити, і немає режиму, який треба обрати. Які прилади відповідять — числова підлога, паспортний стіл, зошит, суддя — випливає з того, які клітинки ви заповнили.
Одне правило під усім
Істина не видається в кредит. Ім'я перевірене тоді, коли перевірку справді зробили, і стовпець підстави — це місце, де ви кажете, що саме її зробило. Ім'я, під яким нічого немає, не хибне — воно неперевірене, і це чесна третя відповідь, заради якої ця логіка й існує.
Коли ви питаєте число
Поставте `?` у величину — і рядок перестає бути відповіддю й стає питанням. `x = ?` разом із твердженням `x - 10 = 20` має відповідь: x дорівнює 30, і це зароблено. Це єдина клітинка, яка змінює те, що машина РОБИТЬ: скрізь інде ви кажете їй, що знаєте, а тут — питаєте.
Де живуть формули і яка клітинка читається двояко
Лише у двох клітинках. У ПІДСТАВІ, коли ім'я ВИЗНАЧЕНЕ формулою через інші імена — саме так пишеться самопосилання, і саме тому брехунові не потрібен окремий режим. І у ТВЕРДЖЕННІ, яке ви насправді й заявляєте. Зверніть увагу, що робить клітинка підстави: у перевіреного імені там `inv-17` — непрозоре ім'я, всередину якого машина ніколи не дивиться; у визначеного там `~Tr(L)` — формула, яку машина читає й обчислює. Вирішує статус, і форма перепитує щоразу, коли ви його міняєте.
стовпці рядка
| стовпець | що це | обов'язково | варіанти / приклади |
| ім'я | як називаємо; ним же користуємось у формулах | завжди | line · budget · L |
| означає | що означає істинність цього імені | ні | the invoice line · this sentence is false |
| статус | звідки воно в нас | завжди | перевірено · спростовано · не перевірено · визначено |
| підстава | чим підтверджено або як визначено | за контекстом | inv-17 · ~Tr(L) |
| вимір | воно ПІДПИРАЄ твердження чи ДОЗВОЛЯЄ його | ні | опора (підпирає) · дозвіл (дає право) |
| вид підстави | документ, якщо не сказано інакше | ні | документ · акт (відкликати нічого) · сертифікат (спливає) · інший рядок |
| спливає при | ім'я події, після якої ця підстава більше не тримає — інший рядок | ні | court_judgment · registry_recheck |
| величина | число, інтервал [0,10] або ? для невідомого | ні | 1500 · [0,10] · ? |
| одиниця | лише з величиною; метри не зустрічаються з гривнями | ні | RUB · m · m2 |
| шкала | до чого округлюємо | ні | цілі · соті · третини |
| окремі виміри | число з вибірки, а не одне вимірювання | ні | |
сам документ
| стовпець | що це | обов'язково | варіанти / приклади |
| допустимі підстави | через кому; порожньо — ворота мовчать | ні | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| claim | what you are actually asserting | ні | line <= budget · rain -> umbrella |
| ask | narrow the report; empty shows everything that applies | ні | verdict · warranty · passport · stipulations · blast · brackets |
оператори
& | and |
-> | if … then |
= | the same value as |
^ | exactly one of |
| | or |
~ | not |
Tr(x) | the value of the row x — this is how self-reference is written |
<= | at most |
>= | at least |
== | equal to |
< | less than |
> | greater than |
арифметика
* | times |
+ | plus |
- | minus |
/ | divided by |
sum(a,b,…) | the sum of several — the same as a + b + … |
( ) | brackets, to say what goes first |
-x | a leading minus: the sign of a term, not the operation between two — `-x + 100 = 70` is a fair question and was not accepted until 2026-08-13 |
що може бути величиною
1500 | a number you have measured or read off a document |
[0,10] | a box: somewhere in this range, and the machine keeps the range rather than picking a point. Both ends are INCLUDED; for a strict bound put it in the claim — `x > 0`. Write it backwards, [10,0], and you get E: the row names nothing, which is a verdict rather than a typo |
? | A QUESTION. You do not know it and you are asking. If the rest of the table determines it, the solver answers with the value AND the provenance it inherited — `x = 30, earned`. If it does not, you get told what would settle it. |
розібраний приклад
| стовпець | означає | статус | підстава | величина |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
допустимі підстави: line <= budget
коди помилок
E_BADNAME | a name a formula could not use |
E_CLAIM | the claim does not parse |
E_DIM | a dimension outside the list — a ground either supports a claim or permits it |
E_DIM_CLASH | a ground carries one mark, not two: 'authority' cannot be combined with an act, a certificate or another row |
E_DUPNAME | the same name twice |
E_EMPTY | the table has no rows |
E_EXPIRY_NO_GROUND | a clock on a row that has no earned ground to lose |
E_FORMULA | the defining formula does not parse |
E_GROUND_SPACES | a ground with a space in it — a ground is one word, because it names a document |
E_KIND | a kind of ground outside the list |
E_NOGROUND | verified, refuted or defined, with nothing backing it |
E_NONAME | a row without a name |
E_OPEN_INTERVAL | an open bound like (0,10) — put the strictness in the claim instead |
E_SCALE | a scale that is not empty/int/decimalK/fracM, or out of bounds |
E_STATUS | a status outside the four |
E_UNIT | a unit that cannot be read — a word, optionally with a power (m2), joined by · or / |
E_UNKNOWN_NAME | a formula names a row that does not exist |
E_UNREADABLE | the instruments could not read the claim — the message says what they choked on |
E_VALUE_FORM | a value that is neither a number, an interval nor ? |
E_VALUE_SET | a choice between values, {0,10} — that is two rows, not one quantity |
W_NO_GLOSS | no gloss, so nobody can check the name means what it seems to |
W_UNIT_NO_VALUE | a unit with no value |
ZFL — Zero-trust Formal Language, שפת הסטודיו (ZTL היא הלוגיקה; ZFL היא איך כותבים עבורה)
למה טבלה ולא תחביר
כל מה שאתם כותבים כאן הוא מסמך אחד: רשימת שמות, כל אחד אומר מאיפה הוא הגיע אליכם, ובנוסף מה אתם טוענים עליהם. אין ז'אנר להכריז עליו ואין מצב לבחור. אילו כלים יענו — הרצפה המספרית, לשכת הדרכונים, הפנקס, השופט — נובע מאילו תאים מילאתם.
הכלל האחד שמתחת לכול
אמת אינה ניתנת באשראי. שם מאומת כאשר אימות באמת נעשה, ועמודת האסמכתא היא המקום שבו אתם אומרים מה עשה אותו. שם שאין דבר מאחוריו איננו שקרי — הוא לא אומת, וזו תשובה שלישית ישרה, והסיבה שהלוגיקה הזו קיימת.
כששואלים מספר
שימו `?` בערך והשורה מפסיקה להיות תשובה והופכת לשאלה. `x = ?` יחד עם הטענה `x - 10 = 20` נענית: x הוא 30, ומאומת. זה התא היחיד שמשנה את מה שהמכונה עושה — בכל מקום אחר אתם מספרים לה מה אתם יודעים, וכאן אתם שואלים.
היכן שורדות הנוסחאות, והתא שנקרא בשתי דרכים
בשני תאים בלבד. באסמכתא, כששם מוגדר על ידי נוסחה מעל שמות אחרים — כך נכתבת הפניה עצמית, ולכן פרדוקס השקרן אינו זקוק למצב מיוחד. ובטענה, שהיא מה שאתם באמת מצהירים. שימו לב מה עושה תא האסמכתא: אצל שם מאומת הוא מחזיק `inv-17`, שם אטום שהמכונה לעולם אינה מציצה לתוכו; אצל שם מוגדר הוא מחזיק `~Tr(L)`, נוסחה שהמכונה קוראת ומחשבת. המעמד מכריע, והטופס שואל שוב בכל פעם שאתם משנים אותו.
עמודות של שורה
| עמודה | מה זה | חובה | אפשרויות / דוגמאות |
| שם | איך קוראים לו; באותו שם משתמשים בנוסחאות | תמיד | line · budget · L |
| פירושו | מה זה אומר שהשם הזה אמיתי | לא | the invoice line · this sentence is false |
| מעמד | מאיפה זה הגיע אלינו | תמיד | מאומת · הופרך · לא אומת · מוגדר |
| אסמכתא | מה מאשש אותו, או הנוסחה שמגדירה אותו | לפי ההקשר | inv-17 · ~Tr(L) |
| ממד | האם זה תומך בטענה או מתיר אותה | לא | תמיכה (מבססת) · סמכות (מתירה) |
| סוג האסמכתא | מסמך, אלא אם נאמר אחרת | לא | מסמך · מעשה (אין מה לבטל) · אישור (פג תוקף) · שורה אחרת |
| פג בעת | שם האירוע שאחריו האסמכתא כבר אינה מחזיקה — שורה אחרת | לא | court_judgment · registry_recheck |
| ערך | מספר, תחום [0,10] או ? ללא ידוע | לא | 1500 · [0,10] · ? |
| יחידה | רק עם ערך; מטרים לא נפגשים עם שקלים | לא | RUB · m · m2 |
| סולם | לאן מעגלים | לא | שלמים · מאיות · שלישים |
| מדידות נפרדות | מספר מתוך מדגם, לא מדידה אחת | לא | |
המסמך עצמו
| עמודה | מה זה | חובה | אפשרויות / דוגמאות |
| אסמכתאות קבילות | מופרדות בפסיק; ריק — השער שותק | לא | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| claim | what you are actually asserting | לא | line <= budget · rain -> umbrella |
| ask | narrow the report; empty shows everything that applies | לא | verdict · warranty · passport · stipulations · blast · brackets |
אופרטורים
& | and |
-> | if … then |
= | the same value as |
^ | exactly one of |
| | or |
~ | not |
Tr(x) | the value of the row x — this is how self-reference is written |
<= | at most |
>= | at least |
== | equal to |
< | less than |
> | greater than |
חשבון
* | times |
+ | plus |
- | minus |
/ | divided by |
sum(a,b,…) | the sum of several — the same as a + b + … |
( ) | brackets, to say what goes first |
-x | a leading minus: the sign of a term, not the operation between two — `-x + 100 = 70` is a fair question and was not accepted until 2026-08-13 |
מה יכול להיות ערך
1500 | a number you have measured or read off a document |
[0,10] | a box: somewhere in this range, and the machine keeps the range rather than picking a point. Both ends are INCLUDED; for a strict bound put it in the claim — `x > 0`. Write it backwards, [10,0], and you get E: the row names nothing, which is a verdict rather than a typo |
? | A QUESTION. You do not know it and you are asking. If the rest of the table determines it, the solver answers with the value AND the provenance it inherited — `x = 30, earned`. If it does not, you get told what would settle it. |
דוגמה מפורטת
| עמודה | פירושו | מעמד | אסמכתא | ערך |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
אסמכתאות קבילות: line <= budget
קודי שגיאה
E_BADNAME | a name a formula could not use |
E_CLAIM | the claim does not parse |
E_DIM | a dimension outside the list — a ground either supports a claim or permits it |
E_DIM_CLASH | a ground carries one mark, not two: 'authority' cannot be combined with an act, a certificate or another row |
E_DUPNAME | the same name twice |
E_EMPTY | the table has no rows |
E_EXPIRY_NO_GROUND | a clock on a row that has no earned ground to lose |
E_FORMULA | the defining formula does not parse |
E_GROUND_SPACES | a ground with a space in it — a ground is one word, because it names a document |
E_KIND | a kind of ground outside the list |
E_NOGROUND | verified, refuted or defined, with nothing backing it |
E_NONAME | a row without a name |
E_OPEN_INTERVAL | an open bound like (0,10) — put the strictness in the claim instead |
E_SCALE | a scale that is not empty/int/decimalK/fracM, or out of bounds |
E_STATUS | a status outside the four |
E_UNIT | a unit that cannot be read — a word, optionally with a power (m2), joined by · or / |
E_UNKNOWN_NAME | a formula names a row that does not exist |
E_UNREADABLE | the instruments could not read the claim — the message says what they choked on |
E_VALUE_FORM | a value that is neither a number, an interval nor ? |
E_VALUE_SET | a choice between values, {0,10} — that is two rows, not one quantity |
W_NO_GLOSS | no gloss, so nobody can check the name means what it seems to |
W_UNIT_NO_VALUE | a unit with no value |
ZFL — Zero-trust Formal Language, die Sprache des Studios (ZTL ist die Logik; ZFL ist, wie man dafür schreibt)
Warum eine Tabelle und keine Syntax
Alles, was Sie hier schreiben, ist EIN Dokument: eine Liste von NAMEN, jeder sagt, woher er bei Ihnen steht, dazu das, was Sie über sie BEHAUPTEN. Es gibt keine Gattung zu erklären und keinen Modus zu wählen. Welche Instrumente antworten — die Zahlenebene, das Passamt, das Buch, der Richter — ergibt sich daraus, welche Zellen Sie gefüllt haben.
Die eine Regel darunter
Wahrheit wird nicht auf Kredit gewährt. Ein Name ist geprüft, wenn eine Prüfung stattgefunden hat, und die Spalte Grundlage ist der Ort, an dem Sie sagen, was sie hervorgebracht hat. Ein Name ohne etwas dahinter ist nicht falsch — er ist ungeprüft, und das ist eine ehrliche dritte Antwort und der Grund, warum es diese Logik gibt.
Wenn Sie nach einer Zahl fragen
Setzen Sie `?` in einen Wert, und die Zeile ist keine Antwort mehr, sondern eine Frage. `x = ?` mit der Behauptung `x - 10 = 20` wird beantwortet: x ist 30, und verdient. Das ist die einzige Zelle, die ändert, was die Maschine TUT — überall sonst sagen Sie ihr, was Sie wissen, und hier fragen Sie.
Wo Formeln überleben, und die eine Zelle mit zwei Lesarten
Nur in zwei Zellen. In der GRUNDLAGE, wenn ein Name durch eine Formel über andere Namen DEFINIERT wird — so schreibt man Selbstbezug, und darum braucht der Lügner keinen eigenen Modus. Und in der BEHAUPTUNG, die Sie tatsächlich aufstellen. Beachten Sie, was die Grundlagenzelle tut: bei einem geprüften Namen hält sie `inv-17`, einen undurchsichtigen Namen, in den die Maschine nie hineinsieht; bei einem definierten Namen `~Tr(L)`, eine Formel, die sie liest und auswertet. Der Status entscheidet, und das Formular fragt neu, sobald Sie ihn ändern.
die Spalten einer Zeile
| Spalte | was es ist | Pflicht | Optionen / Beispiele |
| Name | wie wir es nennen; damit rechnen auch die Formeln | immer | line · budget · L |
| bedeutet | was es HEISST, dass dies wahr ist | nein | the invoice line · this sentence is false |
| Status | woher wir es haben | immer | geprüft · widerlegt · ungeprüft · definiert |
| Grundlage | was es belegt, oder die definierende Formel | je nach Kontext | inv-17 · ~Tr(L) |
| Dimension | STÜTZT es die Aussage oder ERLAUBT es sie | nein | Stütze (belegt) · Befugnis (erlaubt) |
| Art der Grundlage | ein Dokument, sofern nicht anders gesagt | nein | Dokument · Handlung (nichts zurückzunehmen) · Zertifikat (läuft ab) · andere Zeile |
| erlischt bei | Name des Ereignisses, nach dem diese Grundlage nicht mehr trägt — eine andere Zeile | nein | court_judgment · registry_recheck |
| Wert | Zahl, Intervall [0,10] oder ? für unbekannt | nein | 1500 · [0,10] · ? |
| Einheit | nur mit einem Wert; Meter treffen nie auf Euro | nein | RUB · m · m2 |
| Skala | worauf gerundet wird | nein | ganze · Hundertstel · Drittel |
| Einzelmessungen | eine Zahl aus einer Stichprobe, keine einzelne Messung | nein | |
das Dokument selbst
| Spalte | was es ist | Pflicht | Optionen / Beispiele |
| zulässige Grundlagen | kommagetrennt; leer heißt: das Tor schweigt | nein | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| claim | what you are actually asserting | nein | line <= budget · rain -> umbrella |
| ask | narrow the report; empty shows everything that applies | nein | verdict · warranty · passport · stipulations · blast · brackets |
Operatoren
& | and |
-> | if … then |
= | the same value as |
^ | exactly one of |
| | or |
~ | not |
Tr(x) | the value of the row x — this is how self-reference is written |
<= | at most |
>= | at least |
== | equal to |
< | less than |
> | greater than |
Arithmetik
* | times |
+ | plus |
- | minus |
/ | divided by |
sum(a,b,…) | the sum of several — the same as a + b + … |
( ) | brackets, to say what goes first |
-x | a leading minus: the sign of a term, not the operation between two — `-x + 100 = 70` is a fair question and was not accepted until 2026-08-13 |
was ein Wert sein darf
1500 | a number you have measured or read off a document |
[0,10] | a box: somewhere in this range, and the machine keeps the range rather than picking a point. Both ends are INCLUDED; for a strict bound put it in the claim — `x > 0`. Write it backwards, [10,0], and you get E: the row names nothing, which is a verdict rather than a typo |
? | A QUESTION. You do not know it and you are asking. If the rest of the table determines it, the solver answers with the value AND the provenance it inherited — `x = 30, earned`. If it does not, you get told what would settle it. |
ein durchgerechnetes Beispiel
| Spalte | bedeutet | Status | Grundlage | Wert |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
zulässige Grundlagen: line <= budget
Fehlercodes
E_BADNAME | a name a formula could not use |
E_CLAIM | the claim does not parse |
E_DIM | a dimension outside the list — a ground either supports a claim or permits it |
E_DIM_CLASH | a ground carries one mark, not two: 'authority' cannot be combined with an act, a certificate or another row |
E_DUPNAME | the same name twice |
E_EMPTY | the table has no rows |
E_EXPIRY_NO_GROUND | a clock on a row that has no earned ground to lose |
E_FORMULA | the defining formula does not parse |
E_GROUND_SPACES | a ground with a space in it — a ground is one word, because it names a document |
E_KIND | a kind of ground outside the list |
E_NOGROUND | verified, refuted or defined, with nothing backing it |
E_NONAME | a row without a name |
E_OPEN_INTERVAL | an open bound like (0,10) — put the strictness in the claim instead |
E_SCALE | a scale that is not empty/int/decimalK/fracM, or out of bounds |
E_STATUS | a status outside the four |
E_UNIT | a unit that cannot be read — a word, optionally with a power (m2), joined by · or / |
E_UNKNOWN_NAME | a formula names a row that does not exist |
E_UNREADABLE | the instruments could not read the claim — the message says what they choked on |
E_VALUE_FORM | a value that is neither a number, an interval nor ? |
E_VALUE_SET | a choice between values, {0,10} — that is two rows, not one quantity |
W_NO_GLOSS | no gloss, so nobody can check the name means what it seems to |
W_UNIT_NO_VALUE | a unit with no value |
ZFL — Zero-trust Formal Language, le langage du studio (ZTL est la logique ; ZFL est la façon d'écrire pour elle)
Pourquoi un tableau et non une syntaxe
Tout ce que vous écrivez ici est UN document : une liste de NOMS, chacun disant d'où il vous vient, plus ce que vous AFFIRMEZ à leur sujet. Aucun genre à déclarer, aucun mode à choisir. Quels instruments répondent — le socle numérique, le bureau des passeports, le registre, le juge — découle des cases que vous avez remplies.
La règle unique en dessous
La vérité ne se donne pas à crédit. Un nom est vérifié quand une vérification a bien eu lieu, et la colonne fondement est l'endroit où vous dites ce qui l'a produite. Un nom sans rien derrière n'est pas faux — il est non vérifié, ce qui est une troisième réponse honnête et la raison d'être de cette logique.
Quand vous demandez un nombre
Mettez `?` dans une valeur et la ligne cesse d'être une réponse pour devenir une question. `x = ?` avec l'affirmation `x - 10 = 20` reçoit sa réponse : x vaut 30, et c'est acquis. C'est la seule case qui change ce que la machine FAIT — partout ailleurs vous lui dites ce que vous savez, ici vous demandez.
Où survivent les formules, et la case qui se lit de deux façons
Dans deux cases seulement. Dans le FONDEMENT, quand un nom est DÉFINI par une formule sur d'autres noms — c'est ainsi que s'écrit l'autoréférence, et c'est pourquoi le menteur n'a besoin d'aucun mode spécial. Et dans l'AFFIRMATION, qui est ce que vous avancez réellement. Notez ce que fait la case fondement : pour un nom vérifié elle contient `inv-17`, un nom opaque dans lequel la machine ne regarde jamais ; pour un nom défini, `~Tr(L)`, une formule qu'elle lit et évalue. Le statut tranche, et le formulaire redemande dès que vous le changez.
les colonnes d'une ligne
| colonne | ce que c'est | obligatoire | options / exemples |
| nom | comme nous l'appelons ; les formules s'en servent | toujours | line · budget · L |
| signifie | ce que cela VEUT DIRE que ce soit vrai | non | the invoice line · this sentence is false |
| statut | d'où cela nous vient | toujours | vérifié · réfuté · non vérifié · défini |
| fondement | ce qui l'atteste, ou la formule qui le définit | selon le contexte | inv-17 · ~Tr(L) |
| dimension | cela SOUTIENT l'affirmation ou l'AUTORISE | non | appui (soutient) · autorité (autorise) |
| type de fondement | un document, sauf mention contraire | non | document · acte (rien à retirer) · certificat (expire) · autre ligne |
| expire à | le nom de l'événement après lequel ce fondement ne tient plus — une autre ligne | non | court_judgment · registry_recheck |
| valeur | nombre, intervalle [0,10] ou ? pour inconnu | non | 1500 · [0,10] · ? |
| unité | seulement avec une valeur ; les mètres ne rencontrent pas les euros | non | RUB · m · m2 |
| échelle | jusqu'où l'on arrondit | non | entiers · centièmes · tiers |
| mesures séparées | un nombre issu d'un échantillon, pas d'une seule mesure | non | |
le document lui-même
| colonne | ce que c'est | obligatoire | options / exemples |
| fondements admis | separes par des virgules ; vide : la porte se tait | non | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| claim | what you are actually asserting | non | line <= budget · rain -> umbrella |
| ask | narrow the report; empty shows everything that applies | non | verdict · warranty · passport · stipulations · blast · brackets |
opérateurs
& | and |
-> | if … then |
= | the same value as |
^ | exactly one of |
| | or |
~ | not |
Tr(x) | the value of the row x — this is how self-reference is written |
<= | at most |
>= | at least |
== | equal to |
< | less than |
> | greater than |
arithmétique
* | times |
+ | plus |
- | minus |
/ | divided by |
sum(a,b,…) | the sum of several — the same as a + b + … |
( ) | brackets, to say what goes first |
-x | a leading minus: the sign of a term, not the operation between two — `-x + 100 = 70` is a fair question and was not accepted until 2026-08-13 |
ce qui peut être une valeur
1500 | a number you have measured or read off a document |
[0,10] | a box: somewhere in this range, and the machine keeps the range rather than picking a point. Both ends are INCLUDED; for a strict bound put it in the claim — `x > 0`. Write it backwards, [10,0], and you get E: the row names nothing, which is a verdict rather than a typo |
? | A QUESTION. You do not know it and you are asking. If the rest of the table determines it, the solver answers with the value AND the provenance it inherited — `x = 30, earned`. If it does not, you get told what would settle it. |
un exemple traité
| colonne | signifie | statut | fondement | valeur |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
fondements admis: line <= budget
codes d'erreur
E_BADNAME | a name a formula could not use |
E_CLAIM | the claim does not parse |
E_DIM | a dimension outside the list — a ground either supports a claim or permits it |
E_DIM_CLASH | a ground carries one mark, not two: 'authority' cannot be combined with an act, a certificate or another row |
E_DUPNAME | the same name twice |
E_EMPTY | the table has no rows |
E_EXPIRY_NO_GROUND | a clock on a row that has no earned ground to lose |
E_FORMULA | the defining formula does not parse |
E_GROUND_SPACES | a ground with a space in it — a ground is one word, because it names a document |
E_KIND | a kind of ground outside the list |
E_NOGROUND | verified, refuted or defined, with nothing backing it |
E_NONAME | a row without a name |
E_OPEN_INTERVAL | an open bound like (0,10) — put the strictness in the claim instead |
E_SCALE | a scale that is not empty/int/decimalK/fracM, or out of bounds |
E_STATUS | a status outside the four |
E_UNIT | a unit that cannot be read — a word, optionally with a power (m2), joined by · or / |
E_UNKNOWN_NAME | a formula names a row that does not exist |
E_UNREADABLE | the instruments could not read the claim — the message says what they choked on |
E_VALUE_FORM | a value that is neither a number, an interval nor ? |
E_VALUE_SET | a choice between values, {0,10} — that is two rows, not one quantity |
W_NO_GLOSS | no gloss, so nobody can check the name means what it seems to |
W_UNIT_NO_VALUE | a unit with no value |
ZFL — Zero-trust Formal Language, el lenguaje del estudio (ZTL es la lógica; ZFL es cómo se escribe para ella)
Por qué una tabla y no una sintaxis
Todo lo que escribe aquí es UN documento: una lista de NOMBRES, cada uno diciendo de dónde le viene, más lo que usted AFIRMA sobre ellos. No hay género que declarar ni modo que elegir. Qué instrumentos responden — el suelo numérico, la oficina de pasaportes, el registro, el juez — se sigue de qué casillas rellenó.
La única regla por debajo
La verdad no se concede a crédito. Un nombre está verificado cuando una verificación ocurrió de veras, y la columna fundamento es donde usted dice qué la produjo. Un nombre sin nada detrás no es falso — está sin verificar, que es una tercera respuesta honesta y la razón de ser de esta lógica.
Cuando usted pide un número
Ponga `?` en un valor y la fila deja de ser una respuesta para volverse una pregunta. `x = ?` junto con la afirmación `x - 10 = 20` tiene respuesta: x es 30, y ganado. Es la única casilla que cambia lo que la máquina HACE — en todas las demás usted le cuenta lo que sabe, y aquí pregunta.
Dónde sobreviven las fórmulas, y la casilla que se lee de dos maneras
Solo en dos casillas. En el FUNDAMENTO, cuando un nombre se DEFINE por una fórmula sobre otros nombres — así se escribe la autorreferencia, y por eso el mentiroso no necesita ningún modo especial. Y en la AFIRMACIÓN, que es lo que usted sostiene de verdad. Fíjese en lo que hace la casilla fundamento: para un nombre verificado guarda `inv-17`, un nombre opaco dentro del cual la máquina nunca mira; para uno definido, `~Tr(L)`, una fórmula que lee y evalúa. El estado decide, y el formulario vuelve a preguntar en cuanto usted lo cambia.
las columnas de una fila
| columna | qué es | obligatorio | opciones / ejemplos |
| nombre | cómo lo llamamos; las fórmulas lo usan | siempre | line · budget · L |
| significa | qué SIGNIFICA que esto sea verdadero | no | the invoice line · this sentence is false |
| estado | de dónde nos viene | siempre | verificado · refutado · sin verificar · definido |
| fundamento | qué lo respalda, o la fórmula que lo define | según el contexto | inv-17 · ~Tr(L) |
| dimensión | ¿SOSTIENE la afirmación o la PERMITE? | no | apoyo (sostiene) · autoridad (permite) |
| tipo de fundamento | un documento, salvo que se diga otra cosa | no | documento · acto (nada que retirar) · certificado (caduca) · otra fila |
| expira en | el nombre del evento tras el cual este fundamento ya no sostiene — otra fila | no | court_judgment · registry_recheck |
| valor | número, intervalo [0,10] o ? para desconocido | no | 1500 · [0,10] · ? |
| unidad | solo con un valor; los metros no se cruzan con los euros | no | RUB · m · m2 |
| escala | hasta dónde redondeamos | no | enteros · centésimas · tercios |
| mediciones separadas | un número de una muestra, no una sola medición | no | |
el documento mismo
| columna | qué es | obligatorio | opciones / ejemplos |
| fundamentos admitidos | separados por comas; vacio: la puerta calla | no | registry_extract:place, testimony:story · перебор:act, промер:act, мастер:story |
| claim | what you are actually asserting | no | line <= budget · rain -> umbrella |
| ask | narrow the report; empty shows everything that applies | no | verdict · warranty · passport · stipulations · blast · brackets |
operadores
& | and |
-> | if … then |
= | the same value as |
^ | exactly one of |
| | or |
~ | not |
Tr(x) | the value of the row x — this is how self-reference is written |
<= | at most |
>= | at least |
== | equal to |
< | less than |
> | greater than |
aritmética
* | times |
+ | plus |
- | minus |
/ | divided by |
sum(a,b,…) | the sum of several — the same as a + b + … |
( ) | brackets, to say what goes first |
-x | a leading minus: the sign of a term, not the operation between two — `-x + 100 = 70` is a fair question and was not accepted until 2026-08-13 |
qué puede ser un valor
1500 | a number you have measured or read off a document |
[0,10] | a box: somewhere in this range, and the machine keeps the range rather than picking a point. Both ends are INCLUDED; for a strict bound put it in the claim — `x > 0`. Write it backwards, [10,0], and you get E: the row names nothing, which is a verdict rather than a typo |
? | A QUESTION. You do not know it and you are asking. If the rest of the table determines it, the solver answers with the value AND the provenance it inherited — `x = 30, earned`. If it does not, you get told what would settle it. |
un ejemplo resuelto
| columna | significa | estado | fundamento | valor |
| line | the invoice line | verified | inv-17 | 1500 |
| budget | the ceiling | verified | order-4 | 5000 |
| rain | it is raining | unverified | — | — |
| L | this sentence is false | defined | ~Tr(L) | — |
fundamentos admitidos: line <= budget
códigos de error
E_BADNAME | a name a formula could not use |
E_CLAIM | the claim does not parse |
E_DIM | a dimension outside the list — a ground either supports a claim or permits it |
E_DIM_CLASH | a ground carries one mark, not two: 'authority' cannot be combined with an act, a certificate or another row |
E_DUPNAME | the same name twice |
E_EMPTY | the table has no rows |
E_EXPIRY_NO_GROUND | a clock on a row that has no earned ground to lose |
E_FORMULA | the defining formula does not parse |
E_GROUND_SPACES | a ground with a space in it — a ground is one word, because it names a document |
E_KIND | a kind of ground outside the list |
E_NOGROUND | verified, refuted or defined, with nothing backing it |
E_NONAME | a row without a name |
E_OPEN_INTERVAL | an open bound like (0,10) — put the strictness in the claim instead |
E_SCALE | a scale that is not empty/int/decimalK/fracM, or out of bounds |
E_STATUS | a status outside the four |
E_UNIT | a unit that cannot be read — a word, optionally with a power (m2), joined by · or / |
E_UNKNOWN_NAME | a formula names a row that does not exist |
E_UNREADABLE | the instruments could not read the claim — the message says what they choked on |
E_VALUE_FORM | a value that is neither a number, an interval nor ? |
E_VALUE_SET | a choice between values, {0,10} — that is two rows, not one quantity |
W_NO_GLOSS | no gloss, so nobody can check the name means what it seems to |
W_UNIT_NO_VALUE | a unit with no value |