{"id":16160801,"url":"https://github.com/kenny2github/language-tnt","last_synced_at":"2026-02-22T22:07:14.886Z","repository":{"id":119866062,"uuid":"245200463","full_name":"Kenny2github/language-tnt","owner":"Kenny2github","description":"Typographic Number Theory syntax highlighting in Atom","archived":false,"fork":false,"pushed_at":"2020-09-29T08:31:14.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-13T07:46:27.994Z","etag":null,"topics":["atom-package","syntax-highlighting"],"latest_commit_sha":null,"homepage":"https://atom.io/packages/language-tnt","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kenny2github.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-05T15:32:58.000Z","updated_at":"2020-09-29T08:31:17.000Z","dependencies_parsed_at":"2023-06-03T11:00:46.478Z","dependency_job_id":null,"html_url":"https://github.com/Kenny2github/language-tnt","commit_stats":{"total_commits":7,"total_committers":1,"mean_commits":7.0,"dds":0.0,"last_synced_commit":"240a4988fcbc7f80d5953d0e737f8db8d5ffd975"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kenny2github%2Flanguage-tnt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kenny2github%2Flanguage-tnt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kenny2github%2Flanguage-tnt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kenny2github%2Flanguage-tnt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kenny2github","download_url":"https://codeload.github.com/Kenny2github/language-tnt/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247584060,"owners_count":20962071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom-package","syntax-highlighting"],"created_at":"2024-10-10T02:04:46.385Z","updated_at":"2025-10-29T05:08:16.169Z","avatar_url":"https://github.com/Kenny2github.png","language":null,"readme":"\n# language-tnt\n\nTypographic Number Theory support in Atom.\n\n## Summary of TNT\n### Rules of Well-Formedness\n**Numerals**\n\u003e 0 is a numeral.\u003cbr/\u003e\n\u003e A numeral preceded by S is also a numeral.\u003cbr/\u003e\n\u003e *Examples*: `0` `S0` `SS0` `SSS0` `SSSS0` `SSSSS0`\n\n**Variables**\n\u003e `a` is a variable. If we're not being austere, so are `b`, `c`, `d`, and `e`.\u003cbr/\u003e\n\u003e A variable followed by a prime is also a variable.\u003cbr/\u003e\n\u003e *Examples*: `a` `b′` `c′′` `d′′′` `e′′′′`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `′`*: `'`\n\n**Terms**\n\u003e All numerals and variables are terms.\u003cbr/\u003e\n\u003e A term preceded by `S` is also a term.\u003cbr/\u003e\n\u003e If `s` and `t` are terms, then so are `(s+t)` and `(s⋅t)`.\u003cbr/\u003e\n\u003e *Examples*: `0` `b` `(S0⋅(SS0+c))` `S(Sa⋅(Sb⋅Sc))`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `⋅`*: `*`, `.`\n\nThe above rules tell how to make *parts* of well-formed formulas; the remaining rules tell how to make *complete* well-formed formulas.\n\n**Atoms**\n\u003e If `s` and `t` are terms, then `s=t` is an atom.\u003cbr/\u003e\n\u003e *Examples*: `S0=0` `(SS0+SS0)=SSSS0` `S(b+c)=((c⋅d)⋅e)`\u003cbr/\u003e\n\u003e If an atom contains a variable `u`, then `u` is *free* in it. Thus there are four free variables in the last example.\n\n**Negations**\n\u003e A well-formed formula preceded by a tilde is well-formed.\u003cbr/\u003e\n\u003e *Examples*: `~S0=0` `~∃b:(b+b)=S0` `~\u003c0=0⊃S0=0\u003e` `~b=S0`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `~`*: `!`\n\n**Compounds**\n\u003e If `x` and `y` are well-formed formulas, and provided that no variable which is free in one is quantified in the other, then the following are all well-formed formulas:\u003cbr/\u003e\n\u003e `\u003cx∧y\u003e`, `\u003cx∨y\u003e`, `\u003cx⊃y\u003e`\u003cbr/\u003e\n\u003e *Examples*: `\u003c0=0∧~0=0\u003e` `\u003cb=b∨~∃c:c=b\u003e` `\u003cS0=0⊃∀c:~∃b:(b+b)=c\u003e`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `∧`*: `\u0026`, `^`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `∨`*: `|`, `V`, `v`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `⊃`*: `→` (Alt+26 on Windows), `]` (less obvious as \"implies\")\n\n**Quantifications**\n\u003e If `u` is a variable, and `x` is a well-formed formula in which `u` is free, then the following strings are well-formed formulas:\u003cbr/\u003e\n\u003e `∃u:x` and `∀u:x`\u003cbr/\u003e\n\u003e *Examples*: `∀b:\u003cb=b∨~∃c:c=b\u003e` `∀c:~∃b:(b+b)=c` `~∃c:Sc=d`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `∀`*: `A`\u003cbr/\u003e\n\u003e *Other symbols permitted instead of `∃`*: `E`\n\n### Rules of Propositional Calculus\n**Joining Rule**: `joining`\n\u003e If `x` and `y` are theorems, then `\u003cx∧y\u003e` is a theorem.\n\n**Separation Rule**: `separation`\n\u003e If `\u003cx∧y\u003e` is a theorem, then both `x` and `y` are theorems.\n\n**Double-Tilde Rule**: `double-tilde`\n\u003e The string `~~` can be deleted from any theorem. It can also be inserted into any theorem, provided that the resulting string is itself well-formed\n\n**Fantasy Rule**: `fantasy rule`\n\u003e If `y` can be derived when `x` is assumed to be a theorem, then `\u003cx⊃y\u003e` is a theorem.\n\n**Carry-Over Rule**: `carry over line`*`n`*\n\u003e Inside a fantasy, any theorem from the \"reality\" one level higher can be brought in and used.\n\n**Rule of Detachment**: `detachment`\n\u003e If `x` and `\u003cx⊃y\u003e` are both theorems, then `y` is a theorem.\n\n**Contrapositive Rule**: `contrapositive`\n\u003e `\u003cx⊃y\u003e` and `\u003c~y⊃~x\u003e` are interchangeable.\n\n**De Morgan's Rule**: `De Morgan`\n\u003e `\u003c~x∧~y\u003e` and `~\u003cx∨y\u003e` are interchangeable.\n\n**Switcheroo Rule**: `switcheroo`\n\u003e `\u003cx∨y\u003e` and `\u003c~x⊃y\u003e` are interchangeable.\n\n### Rules of TNT\n**Rule of Specification**: `specification`\n\u003e Suppose `u` is a variable which occurs inside the string `x`. If the string `∀u:x` is a theorem, then so is `x`, and so are any strings made from `x` by replacing `u`, wherever it occurs, by one and the same term.\u003cbr/\u003e\n\u003e (*Restriction*: The term which replaces `u` must not contain any variable that is quantified in `x`.)\n\n**Rule of Generalization**: `generalization`\n\u003e Suppose `x` is a theorem in which `u`, a variable, occurs free. Then `∀u:x` is a theorem.\u003cbr/\u003e\n\u003e (*Restriction*: No generalization is allowed in a fantasy on any variable which appeared free in the fantasy's premise.)\n\n**Rule of Interchange**: `interchange`\n\u003e Suppose `u` is a variable. Then the strings `∀u:~` and `~∃u:` are interchangeable anywhere inside any theorem.\n\n**Rule of Existence**: `existence`\n\u003e Suppose a term (which may contain variables as long as they are free) appears once, or multiply, in a theorem. Then any (or several, or all) of the appearances of the term may be replaced by a variable which otherwise does not occur in the theorem, and the corresponding existential quantifier must be placed in front.\n\n**Rule of Symmetry** (in Equality); `symmetry`\n\u003e If `r=s` is a theorem, then so is `s=r`\n\n**Rule of Transitivity** (in Equality): `transitivity`\n\u003e If `r=s` and `s=t` are theorems, then so is `r=t`\n\n**Add S** (a Rule of Successorship): `add S`\n\u003e If `r=t` is a theorem, then `Sr=St` is a theorem.\n\n**Drop S** (a Rule of Successorship): `drop S`\n\u003e If `Sr=St` is theorem, then `r=t` is a theorem.\n\n**Rule of Induction**: `induction`\n\u003e Let `X{u}` represent a well-formed formula in which the variable `u` is free, and `X{x/u}` represent the same string, with each appearance of `u` replaced by `x`.\u003cbr/\u003e\n\u003e If both `∀u:\u003cX{u}⊃X{Su/u}\u003e` and `X{0/u}` are theorems, then `∀u:X{u}` is also a theorem.\n\n### Examples\nCheck the [examples folder](https://github.com/Kenny2github/language-tnt/tree/master/examples) - `ascii` contains examples using only ASCII-compatible symbols, `unicode` contains the same examples using the proper (intended) symbols.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenny2github%2Flanguage-tnt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkenny2github%2Flanguage-tnt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenny2github%2Flanguage-tnt/lists"}