This is the word list of Lexon 0.3. This page is a learning tool to help grasp the bigger picture, not neccessarily to memorize individual words. To this end, one thousand links are at your disposal below for fast navigation between words, examples and references. You will find that clicking around reveals the deeper structure of Lexon, beyond words.
The point of Lexon is that one does not have to learn it to read it. Learning to write Lexon is best done by looking at examples rather than memorizing words. This is no different than how a human language, or a programming language, or even legalese is picked up. The allowed use of a word, its context, are what matters. As the Lexon grammar is a so-called controlled grammar, only some ways of using a word are permitted, fewer than in normal English. Studying this is better learned by doing than done by learning. In fact, it is particularly hard to 'unlearn' what you know is correct in normal language. This is why the best way to use this word list is to compare and explore, and focus on the examples, skipping from one to the next by clicking on any of its words. You will – and that is a unique quality of Lexon – get a feel for what works.
Lexon's vocabulary is unlimited because a) any noun or compound term can be defined and used in a Lexon text, b) any phrase can be used as clause name and then used as part of a sentence elsewhere in the text, and c) the Lexon compiler is extensible and keywords can and are added while the grammar grows more powerful.
a) Definitions: see Payer, Payee, etc. in the Escrow example.
b) Clauses: see Noticed, Factually Breached, etc. in the Evaluation License example.
c) Keywords: Cf. vocabulary 0.3 below vs. 0.2 in the 2020 Lexon Bible.
The latter is a slow and incremental process. A special, faster process has been prepared for verbs of foundational importance – like move for robotics – that can sustain an entire domain. The two former points are instant and happen when a user authors a Lexon text. Each Lexon digital contract therefore has its own vocabulary, extending the dictionary on the fly while drafting; as integral and organic part of the writing process. This is in keeping with the usual way that paper contracts are written: terms are being defined for clarity, laying the ground for an agreement's text. That's exactly how Lexon's vocabulary grows while penning a digital contract.
However, as it comes, before any definitions are added, Lexon 0.3 understands 91 keywords plus variations, of which roughly half are processed in an interesting way. Many have only one specific function as marker, like CLAUSE, or make the list solely by virtue of being part of a fix multi-word term, with no independent function, like OFF in SIGN OFF.
To put the word count into perspective, a modern 3rd generation programming language like Rust has about 50 reserved keywords, which are mostly used in a rigid, less interesting way. Beginner's English is said to consist of about 300 words, the Basic English world language project [1] has about 850. These latter counts include many nouns; Lexon's vocabulary contains almost no nouns because these are as a rule defined by the writer of a Lexon text and the Lexon compiler understands them from their function as implied by the rest of the text. This is a fundamental aspect of Lexon's approach and the reason why the Lexon compiler needs to 'understand' relatively few words out of the box. The nouns and phrases that a user adds are inevitably what gives a text depth. The way that definitions work, the compiler learns the role of the new words on the go and recognizes them in the text from that point on. Clause names, however, can be the most interesting because they are the way to insert any complexity of grammar, which can make Lexon texts look rich and elegant. This is a powerful design choice that serves to include language constructs outside of the limit up to which the controlled grammar has to be observed – offering instead of a hard stop, freedom to be fully creative within the safety of a well defined reference frame. Lexon 'understands' such phrases (the clause names) en block, obviously, because the clause itself defines their meaning. The (multi-word) name of a clause's internal grammatical composition is not analysed. The way that the processing of clause names is isolated from the rest of the text is making it possible to mix these monolithic elements with the bulk of the text that the Lexon compiler processes word-for-word, i.e., 'more truely understands'. This combination is a pragmatic way to empower the users to add complexity without having to think about any controlled grammar rules, but importantly also: to freely add vocabulary. The new words are baked into the specific grammatical way that they are presented (in the clause name). They need not be explained further. This mode of extension makes perfect sense for Lexon. 3rd generation programming languages generally allow to add variable names and add types. But they can never reach beyond their fix grammar. Lexon, in contrast, accepts any grammatical extension through the freedom it offers in naming clauses. In this, there is not even a requirement to avoid the initial 91 words that Lexon knows when creating compound new compositions.
But the list of initial words cannot be redefined. It is therefore on the one hand desirable that it includes few nouns. The reason that Lexon, on the other hand, has a larger basic vocabulary than, e.g., Rust is that Lexon's grammar is designed to enable multiple ways of expressing the same meanning, to make writing more intuitive, and to allow for more fluid, natural-appearing texts. This does not mean that Lexon's grammar is ambigious, i.e., that the same sentence could have multiple meanings. It only means that the same meaning can be expressed by differently worded sentences. This is normal for any programming language, and only some developer communities have the ambition to adhere to a style at all times that defines the one, 'right' way for anything that could be expressed. This is always only a convention though.
These words can mostly be redefined as names but in that case can then not serve their original function anywhere in the contract. The exception are category names (types, marked with an asterisk (*) above). They cannot be redefined but can be used as generic names (see, e.g., amount). All words can be used as part of names without losing their original, stand-alone function.
Articles can be left out with no change in meaning. They are optional to increase readability.
They can be omitted, because the name they precede must always be unambigous on its own. This is familiar practice with paper contracts.
Same goes for the, this, these.
Keyword that introduces temporal order, which is not a default in Lexon.
Separate sentences are performed independently of each other, declaratively, rather than one after the other. Afterwards serves to bind statements into one sentence and to establish that the phrase following it is performed only after all side effects of the phrase before it have been established.
To illustrate by example, in the Lexon sentence given below, the remainder is what remains after the Fee mentioned before afterwards has been deducted.
Cf. THEREFORE.
Only with CONTRACTS.
All contracts means all digital contracts in a contract system. This includes the main contract as well as the covenants, or subcontracts.
Defines that a name stands for an amount. In the example, Digital Asset Collateral is marked as being used as the handle for a specific number in the document.
Amount can also be used as a name itself, without being first defined. It can only stand for an amount – i.e., for a number and not a text or a time – and Amount must be spelled with a capital 'A' in this case.
... as well as logical expressions.
A phrase that contains and is true if the part left and the part right of the and are true. There can also be multiple parts, each separated by and. All of them need to be true for the entire expression to be true.
Expresses that the subject of the sentence will determine what the specified object's names will mean concretely. In the example, who the Payee and the Arbiter are.
Functions like fix, see additional notes regarding the subject there.
As can also make a name true that was defined as a binary. In this example, License serves as an object that means the entire contract system, which ultimately is a redundant scope. The relevant mutation is that Commissioned becomes a fact, i.e., true.
The information after the AUTHOR(s) keyword is expected to be the name(s) of the creator(s) of the Lexon text. They are meta data, not parsed, and not used in the document itself.
As a convention, author and authors are usually spelled in uppercase.
Compares the expression to its left with the expression on its right and results in everything together being TRUE or FALSE.
In the example, being tests Notice Time for whether it had been fixed before. Noticed will be true exactly when Notice Time is known, and false if, no value has been given for Notice Time before at any point during the lifetime of the contract.
Defines a name as standing for a binary value, e.g., YES or NO, or TRUE or FALSE.
Note that an undefined binary name is considered to have the value FALSE. Declaring a name sets it to TRUE. Likewise, testing whether a binary name is declared, checks whether it is TRUE.
Expresses that a name has a value assigned, i.e., is not unbound or undefined.
In the example, being tests Notice Time for whether it had been certified before. Noticed will be true exactly when a Notice Time is known, and false if no value has been given for Notice Time before, at any point during the lifetime of the contract.
Functions like FIXED.
Expresses that the subject of the sentence will determine what the specified object's names will mean concretely. In the example, who the Payee and the Arbiter are.
Functions like fix, see additional notes regarding the subject and invocation there.
Signals the start of a clause. A colon must follow, and the name of the clause. Then, the statements that constitute the clause.
Almost every digital contract has one or more clauses. Only in rare, simplistic cases does a contract have only a recital.
Either a clause's name is used to instigate actions that change the state of the contract:
Or, a clause name can itself be a value, if the clause uses defined.
The concrete meaning of the name of such clause is dynamic. That is, the concrete meaning of the clause name is not assigned once and for all at any point in time. Instead, whenever the clause name is used elsewhere in any context, the expression right-hand of defined is re-evaluated for its now current result, which is then the meaning, or value, of that clause name.
The clause name can be used as an expression in the context of other clauses, i.e the name can be used like a value.
The example below uses the name Termination Period that is defined in the example above.
Start of comments that are not translated by the compiler.
Functions like PREAMBLE but can be used multiple times in different places.
Lexon is self-documenting, which greatly diminishes the role of comments. They should be used sparingly or not at all. They can help to explain a more convoluted set of conditions, as can be found in contracts that need to spell out things in detail, including all relevant fringe cases.
Care should be taken to clarify that a comment is not part of the legally binding text; but is written to provide motivation or explain complex aspects with a broad brush, to make the contract easier to understand for a human reader. Such clarification may be added as part of the comment itself.
As a convention, COMMENT is usually spelled in uppercase.
Cf. PREAMBLE.
COMMENT: A license can be for any tangible or intangible good.
Contract as well as allcontracts stand for the contract (system) itself, including all covenants (subcontracts)
Contract can either be used to define a proper name for the digital contract:
Used to describe a duration.
A duration can be used to calculate a point in time relative to another point in time. For example, relative to now or in the past, or – as in the example below - relative to a name that means a specific time.
Used to state that something has happened, or is true.
Technically, declare assigns the truth value, true, to a name. That name must have been defined (see is) as a binary.
In the example this means that Default is now true. Note that before that, it was false.
Cf. binary.
Always used with IS, or BE and AS, to describe the meaning of the name to its left by means of the expression on its right.
The meaning is dynamic. That is, the concrete meaning is not assigned once and for all at any point in time. But instead, whenever the name that is being defined is used elsewhere in any context, the expression right-hand of defined is re-evaluated for its now current result, which is in that moment the meaning of that name.
This type of sentence is the essence of a particular type of CLAUSE whose name can be used like an expression, i.e., the name of such clause can be used like a value in the text of another clause.
The example below uses the name Termination Period that is defined in the example above.
The internal token escrow of a digital contract.
It is mostly used as object to the predicate pay.
Using it with remainder results into a number: the amount of tokens left in the escrow at that point in time.
Asking whether a name is filed constitutes an expression that is true in case the name had a value assigned to it previously. The expression is false if the name had not been defined before during the lifetime of the contract.
To clarify, it does not matter if there is text somewhere in the contract that gives a name a concrete meaning. What matters is whether for a specific, live contract between concrete parties and with a concrete state, it so happened that it is clear what a specific name stands for, or, that what the name stands for exists.
If you take this example ...
The Filing Office may, ifthe Continuation Statement isfiled, fixthe Continuation Statement Date.
... the phrase the Continuation Statement is filed is true, if what is described in the clause shown below ever happened. Concretely, if the Secured Party has filed the Continuation Statement.
Note that in this example contract, the Continuation Statement is defined as a binary. That means that it does not have any specific content beyond existing or not. The filing of it 'is' the statement that continuation is desired.
Indicates that the subject of the sentence will be who determines the meaning of the named objects.
Note that this cuts both ways. The subject might itself be determined by the act of fixing the objects: if it had not been settled yet who the name of the subject refers to, then whoever performs the fixing is from that point on named like the subject of this sentence. The name sticks for the remaining lifetime of the contract. Accordingly, in the example below, if the role of the Filer had not been determined, the person who is fixing the Filing Office etc. becomes the Filer. The way to prevent this automatism is to use may.
The values that are assigned to the objects of the sentence are given by the subject when that person acts to invoke this clause.
Expresses that a name has a value assigned, i.e., is not unbound or undefined.
In the example, being tests Notice Time for whether it had been fixed before. Noticed will be true exactly when a Notice Time is known, and false if no value has been given for Notice Time before, at any point during the lifetime of the contract.
Functions like CERTIFIED.
Used to describe a duration.
A duration can be used to calculate a point in time relative to another point in time. For example, relative to now or in the past.
Following statements are executed only of the immediately following condition is true.
The condition starts after if and ends with a comma, which can be followed by an optional then.
The statements follow after that.
In this example ...
Note that in the following example, License means the (sub)contract itself and is checks the state of the License, diverting into the clause Factually Breached to find out if the License is breached.
The Arbiter may, ifthis License is Factually Breached:
Keyword for the start of a digital contract.
LEX must be the first word of a digital contract. The words after LEX are the name of the entire digital contract (system) described thereafter.
As a convention, LEX is usually spelled in uppercase.
The numbers following LEXON are the version number of the Lexon compiler that the digital contract was written for. This is a concept that helps while Lexon is evolving. As a rule, newer compilers can compile older version Lexon texts but there will sometimes be 'breaking changes' where this backward compatibility is not provided and older texts have to be adapted to the changes of a new grammar.
Note that compatibility is not a dimension of what the texts mean in human language, which remains the same throughout Lexon versions, because English does not change. Instead, this is about older versions of the compiler understanding less than newer ones, i.e., the grammar getting less restricted.
As a convention, LEXON is usually spelled in uppercase.
The subject to MAY is/are the only party or parties to the contract that are auhtorized to initiate the action described. The subject must be bound, i.e., the name before MAY must have been defined before, it cannot be defined in the may statement. Note that statements without may might likewise restrict authority to the named subject. And it is possible that the subject is unbound in cases without MAY, i.e., the role not defined at that point.
Used to form the opposite of a logical expression. Can be positioned before a name, or before fixed. The resulting expression means the opposite of what the part after not meant. It can be part of a bigger logical expression, as shown below. Not, as is grammatically correct, binds the next noun or verb only. The requirements for sentence structure make sure that no ambiguity can arise for the human reader.
If a more complex expression must be inverted, it has to be written as a clause. This simple device to avoid ambiguity without requiring literal bracketing is borrowed from proven best practice in Functional Programming.
Used to build logical expressions. A phrase that contains or is true if the part left or the part right of the or are true.
Colons, commas and semicolons are relevant to separate sub-phrases.
Programmers note that there is no precedence of and over or in Lexon as this is not a part of natural language. Commas and semicolons offer two levels of nesting. Beyong this, precedence is created by encapsulating logical expressions into separate clauses.
In the example ...
Past indicates that a measure of time is to be subtracted from the current time, or it functions like HAS PASSED.
In the example, in the past functions as a negative sign to the literal 24 hours, relative to now.
PER marks the beginning of the TERMS of a covenant or sub-contract.
Digital contracts are often really contract systems that control the creation of individual contracts each with different counter parties. These sub contracts are called covenants in the context of digital contracts. Their terms are separated from the general terms of the digital contracts – which govern everything else, specifically how the covenants come into existence – by the keyword PER, followed by the name the of the covenant, and optionally preceded by the keyword TERMS.
As a convention, PER is usually spelled in uppercase.
Start of a comment from both legal and processing point of view. Words after PREAMBLE are explanations with minimal legal weight and are not translated to 3rd generation language code by the compiler. Accordingly, in the example below, no word behind the colon is interpreted. This is not a special case: it is similar to how Lexon does not account for the common meaning of nouns in human language that a writer defines. This meaning is helpful to understand the contract, but not part of it, like the preamble text. Likewise, it is a common pitfall to read the preamble in a paper contract as part of the legal agreement; it is not. Its value lies in paraphrasing the more technical prose of the agreement in more accessible but blurier terms and to provide context.
As a convention, PREAMBLE is usually spelled in uppercase.
PREAMBLE: This is a licensing contract for a software evaluation.
The consequence of termination is that a contract's state cannot be changed anymore. Both main contracts and covenants (subcontracts) can be terminated. It is good practice to end a contract after its purpose is fulfilled so that it cannot be partially restarted for unintended consequences.
Optional marker of the beginning of general or per-subcontract terms. The TERMS keyword serves to increase clarity but can be left out as the document order suffices for the compiler to understand what part of a document to expect next: terms are neccessarily all statements following the LEX keyword and digital contract (system) name. For yet more clarity, TERMS can be preceded by the optional keyword GENERAL.
For covenants (sub contracts), their terms must be marked at least by the keyword PER, followed by the covenant's name. TERMS may precede PER but is optional.
As a convention, TERMS is usually spelled in uppercase.
Following statements are executed only of the immediately following condition is true.
Appears only together with GIVEN.
GIVEN THAT is a synonym to IF.
Used to reason about the existence of something, ore more precisely, about whether a name has a defined meaning or not.
Appears only in THERE IS or THERE IS NOT, or with variations of IS, like BE.
Cf. fixed.
Therefore binds a sentence to the preceding ones, so that it is performed only if all preceding sentences were performed, i.e., did not disqualify for access or conditional reasons.
Without THEREFORE, a sentence by itself is always materialized when a clause is triggered.
Cf. afterwards.
These can be required to get the natural language grammar right but does not change meaning by its presence or absence because the name that it precedes must always be unambiguous by itself.
THIS can be required to get the natural language grammar right but does not change meaning by its presence or absence because the name that it precedes must always be unambiguous by itself.
A value that a name or an expression can have, meaning that something is the case.
Synonymous with YES.
In the following example, the expression the Continuation Window has passed can be TRUE or FALSE.
This Lexon text is model trade statute developed by asst. prof. Carla L. Reyes. For an in-depth, abstract and concrete legal discussion see Reyes, Carla, Creating Cryptolaw for the Uniform Commercial Code (2021). 78 Washington and Lee Law Review 1521 (2021), SMU Dedman School of Law Legal Studies Research Paper No. 502. For additional technical details, including a terminal run-through, see lexon.org/reyes.