From c2db7bac1425ef1964e7a0682047787343bfda27 Mon Sep 17 00:00:00 2001 From: Moon Flower Date: Mon, 23 Feb 2026 09:38:47 +0330 Subject: some&all + symbol shortcuts --- index.html | 28 +++++++++++++++++----------- symbols.txt | 13 ++++++++++++- tempo.md | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 12 deletions(-) diff --git a/index.html b/index.html index 2e5e31b..18442fb 100644 --- a/index.html +++ b/index.html @@ -151,6 +151,7 @@ const text = await response.text() const symbols = {} + const symbolAliases = {} for (const line of text.split('\n')) { const trimmed = line.trim() @@ -161,13 +162,15 @@ const symbol = parts[0] const name = parts.slice(1).join(' ') symbols[name] = symbol + if (!symbolAliases[symbol]) symbolAliases[symbol] = [] + symbolAliases[symbol].push(name) } } - return symbols + return { symbols, symbolAliases } } catch (err) { console.warn('failed to load symbols.txt:', err) - return {} + return { symbols: {}, symbolAliases: {} } } } @@ -285,7 +288,7 @@ render() { let html = '' - + let tocItems = [] for (const token of this.tokens) { if (token.type === 'definition') { @@ -298,9 +301,9 @@ } else { name = line } - + const actualName = token.description.split('\n')[0].replace(/:/g, '') - + if (this.reverseSymbols[name]) { tocItems.push({ symbol: name, @@ -420,7 +423,7 @@ } } - function validateSymbols(text, symbols) { + function validateSymbols(text, symbols, symbolAliases) { const definedSymbols = new Set() const missing = new Map() const lines = text.replace(/\r\n/g, '\n').replace(/\r/g, '\n').split('\n') @@ -447,11 +450,14 @@ while ((match = usagePattern.exec(line)) !== null) { const name = match[1] if (definedSymbols.has(name)) continue - if (symbols[name] && definedSymbols.has(symbols[name])) continue - if (!missing.has(name)) { - missing.set(name, []) + const sym = symbols[name] + if (sym) { + const aliases = symbolAliases[sym] || [] + if (aliases.some(alias => definedSymbols.has(alias))) continue } + + if (!missing.has(name)) missing.set(name, []) missing.get(name).push(lineNumber) } }) @@ -472,12 +478,12 @@ async function loadMarkdown() { try { - const symbols = await loadSymbols() + const { symbols, symbolAliases } = await loadSymbols() let response = await fetch('tempo.md') if (response.status !== 200) response = await fetch('tempo.md.html') let text = await response.text() - validateSymbols(text, symbols) + validateSymbols(text, symbols, symbolAliases) text = text.replace(/((^|\n) *)/g, (e) => e.replace(/ */g, '')) text = applySymbols(text, symbols) diff --git a/symbols.txt b/symbols.txt index a72ebb1..96b6f88 100644 --- a/symbols.txt +++ b/symbols.txt @@ -22,6 +22,7 @@ 3 three < before | separate +^ inside ! ??? @ change # persistence @@ -55,4 +56,14 @@ H aH He aHe ɸ hypothetical ɸ hypo -u you \ No newline at end of file +u you +‖ between +⊃ context +⊃ ctx +§ nuos +? question +? q +; answer +; ans +ɀ all +ᓱ some \ No newline at end of file diff --git a/tempo.md b/tempo.md index b616577..15fa531 100644 --- a/tempo.md +++ b/tempo.md @@ -119,6 +119,7 @@ denotes that there is no such other object equating this one. def \static\ `[x] x>x` (\static\ A) ^^ static: denotes an object that never changes. that is, it is its own consequence. +an alternative definition would be `[x] @x=x`, claiming that an object's change is itself. def \id\ `[x y] A=x A\prop\y \unique\A \static\A` (A \id\ B) ^^ id: @@ -153,10 +154,19 @@ def < `[x y] y>x + x\neq\y` (A < B) ^^ before: B > A & A \neq\ B, denotes B comes after A and they are not the same. +def \between\ `[a x y] x\neq\f f\neq\y x>f f>y` (A \between\ B C) +^^ between: +shows that an event takes place between two other events. + def | `[x] A=. AB \hypo\(B>A A\comprehend\) indicates a listener that can hypothetically comprehend an axiom created by the speaker. the target of the speaker's words. +def \context\ `[x] A=.\type\(\me\\axiom\) !\comp\x \comp\(x+A) A` (\context\ B) +^^ context: +an axiom, without which, the input axiom cannot be comprehended, but with it, the listener can comprehend the input axiom. + +def \nuos\ `[x] A=.\type\(\me\\world\) B=x B\type\\mind\ A^B A` (\nuos\ C) +^^ nuos: +the internal world, context and logic of a specific mind. defines a world which exists inside of another. + +def ? `A=.\type\\axiom\ B=.\type\\axiom\ B>A (!((\speaker\B)\comp\))>B B` +^^ question: +an axiom, which originates from a void of comprehension, and leads to another axiom. + +def ; `A=.\type\\axiom\ B=.\type\\axiom\ B>A (!((\speaker\B)\comp\))>B A` +^^ answer: +the axiom created from the void of comprehension. + +**note to all**: do not try to define love. poetry is not definition. + +def \all\ `[x y] -(A=.\type\x -(A^y))` (\all\ B C) +^^ all: +for all axioms of type B, every one of them exists inside C. + +def \some\ `[x y] -(\all\ x -y)` (\some\ A B) +^^ some: +there exists an axiom of type A which is inside of B. +alternative definition: `[x y] A=.\type\x A^y` + ## update log // Timestamp: future - more coming soon. +// Timestamp: 2026-02-23 09:37:18 UTC+3:30 +- added symbols \some\ and \all\. + +// Timestamp: 2026-02-22 13:15:30 UTC+3:30 +- added symbols \between\, \ctx\ and \nuos\. + // Timestamp: 2026-01-03 16:29:56 UTC+3:30 - added symbols \hypo\ and \you\. -- cgit v1.2.3