Nomenclature Notes: (this primarly covers mmj.lang and does not delve into mmj.verify)
MMJ Name
(Abbreviation
Usage)

MetaMath.pdf Name/Standard
Usage
MObj
Math Object, parent class of Sym and Stmt. Created only because in a few places unrelated to the "core" lang processing, it is convenient to be able to hold an array or collection containing a mixture of Sym's and Stmt's. The database sequence numbe, "seq" is now stored in MObj. In theory, new objects that might be added later to enable persistent storage of the LogicalSystem object might be added as sub-classes of MObj (example, Scope, for one.)
Sym
Math Symbol
Cnst
Constant (aka $c)
(Note: "const" is a Java keyword and "con" is a device name.)
Var
Variable (aka $v)
varHypArray
Internally computed, provides the unique variable hypotheses referenced in  an assertion's expression (it is a processing byproduct that is saved for later use.) The variable hypotheses are stored in the array in order of their appearance in the database -- i.e., by seq.

Example: ax-1 expression
"( ph -> ( ps -> ph ) )" has 2 unique variable hypotheses, named,  "wph" and  "wps" in set.mm.
Expr
Expression. Refers to the 2nd through "n"th Sym's in a Formula. May be of zero length itself.
ExprRPN
Reverse Polish Notation version of expression, if it exists (it is assumed in MMJ that identification of "syntax constructors" such as "wi" and "wn" axiomatic assertions will enable automatic conversion of Expr's to ExprRPN's.) These RPN versions are further differentiated by content: they refer only to labels! For example, theorem "id" would be expressed in RPN as "wph wph wi"; this embeds variable type information in the expression and avoids namespace ambiguity (Cnst/Var's are not guaranteed to be different than labels.)
Formula
The Metamath "statement" consisting of 1 Cnst Sym followed by 0 to m Cnst or Var Sym's. Defined as an array of 0 to n Sym's, the Cnst at the beginning is referred to as the Typ (type) of the statement. This class is outside of the MObj->Sym/Stmt hierarchy and is stored as an attribute of Stmt. The intent in separating the Formula into its own class was to facilitate processing of formulas and expressions that are not part of a Stmt (for example in proof verification -- see mmj.verify.)
LogicFormula
LogicFormula is an attribute of both LogHyp (Logical Hypothesis) and Assrt (Assertion). It is differentiated from VarHypFormula because, although every Metamath statement can be treated as a "Formula", VarHyp formulas consist of exact 1 Cnst Sym followed by 1 Var Sym, and thus, the handling is different in a few places; the other problem faced was that LogHyp is a sub-class of Hyp but contains a LogicFormula, and Assrt also contains a LogHyp.
VarHypFormula
Variable Hypothesis Formula. See LogicFormula.
Syn
Syntax, normally used in reference to Syntax Axioms and/or VerifySyntax.
Vhe
Variable-Hypothesized Expression. This is a quirky, experimental thing derived from an Expression: each Var in the Sym[] array is replaced by the corresponding VarHyp for the Var in that specific Expression; the VarHyp is *then* expanded into its component Type (a Cnst) and Var. The Vhe and variations are used in Syntax Verification processing for pattern matching. There are several variations for printing, sorting and verifying. The quirkiest one of all is the MObjVhe[] which contains a mixture of Cnst's and VarHyp's (the VarHyp's are not expanded.) Also very quirky is the SynVhe, which stands for Syntax Axiom Vhe --  in this variation the Var is replaced with null (the reason being that for insertion into the SynTree the variable name is irrelevant -- as it is in all Syntax Axioms, except to establish sequence of the hypothesis in VerifyProof. All in all, an ugly business...
Typ
= 1st Constant in Metamath $e, $f, $a and $p statements (i.e. statement "type code"). The first entry in the Formula Sym array.
Opt
Optional (note that names of sets/lists of  variables and/or disjoint variable hypotheses, unless the name is prefixed with "Opt" it refers to Mandatory Variables, as in Mandatory Variable Type Hypotheses.)
Stmt
Statement
DjVars
Disjoint Variable Restriction (aka $d, note that in Frames, unless prefixed with "Opt", refers to a Mandatory Variable Disjoint Variable Restriction)
Hyp
Hypothesis
VarHyp
Variable Type Hypothesis (aka $f, note that in Frames, unless prefixed with "Opt", refers to Mandatory Variable Variable Type Hypothesis)
LogHyp
Essential (aka $e aka "Logical") Hypothesis
Assrt
Assertion
Axiom
Axiomatic Assertion (aka $a)
Theorem
Provable Assertion (aka $p)
MandFrame
Mandatory Frame -- attribute of every Assrt, both Axiom and Theorem. Contains the "mandatory" hypotheses and disjoint variable restrictions of the assertion. "Mandatory" refers to variables and hypotheses used in the assertion's own statement and logical hypotheses' statements (see OptFrame).
OptFrame
Optional Frame -- only Theorems have OptFrames. Whereas Axioms have only a MandFrame, Theorems have both MandFrame and OptFrame. OptFrame contains variable hypotheses and disjoint variable restrictions needed for assertions referenced in the Theorem's proof.




Other Notes About "ER" Table Below:

1. In the 3rd column, "Abstract/NA", "NA" means the item is not actually coded as a separate Java class but is provided in the table as a logical entity; "Y" means that the Class is an abstract "super" class that cannot be instantiated (turned into a real "object" by itself), but its properties and attributes are inherited by its sub-classes.

For example, "Assrt" is Abstract Class whose non-abstract sub-classes are AxiomaticAssrt and ProvableAssrt; an assertion must be either an axiomatic assertion or a provable assertion, but both types of assertion share common properties and attributes.

2. The 4th column, "Unique Key Attributes" identifies which, if any, components of the Class comprise a unique key, whether for sorting or for duplicate checking.

For lack of a better name, "Id" is used in several places as a key; it is the character string that was used in the MetaMath.mm file to define the entry. For example, the value of  Id for the so-called "turnstile" symbol is "|-".


MMJ Entity:Java Name (note: the *list names may not be coded as actual classes) Relationships:

"ISA" means Sub-Class Of

"HAS" means contains

"0-n" means Zero to "n" occurrences.
A
b
s
t
r
a
c
t
/
NA
Unique
Key
A
t
t
r
i
b


______________
Nonkey
A
t
t
r
i
b



_______________________
MObj

Y
int seq

SymISA MObj
Y
String id

CnstISA Sym


boolean   isVarTyp
etc. (lots of stuff, including items created by and used by mmj.verify.Grammar.java)
VarISA Sym


boolean   active
VarHyp    activeVarHyp
Label

NA
String label

Expr
HAS 0-M Sym
NA

sym[1]->[n] of Formula
ExprRPN HAS 0-M Stmt (references)
NA

Stmt[]    exprRPN
UnknownLabel (= "?")
ISA Label
NA

(converted to null
in proof table)
Typ HAS 1 Cnst
NA
sym[0]
sym[0] of Formula
Formula
HAS 1 Typ
HAS 1 Expr


int       cnt
Sym[]     sym
VarTyp ISA Typ
NA


ExprTyp ISA Typ
NA


ProofStep
HAS 0-1 Label
HAS 0-1 UnknownLabel
NA


ProofHAS 1-M ProofStep
NA

Stmt[]
DjVarsHAS 2 Var

Var varLo
Var varHi

StmtISA MObj
HAS 1 Label
HAS 1 Formula
HAS 1 ExprRPN
Y
String label
Formula   formula
Stmt[]    exprRPN
HypISA Stmt
Y

boolean   isActive
VarHypISA Hyp
HAS 1 Var


Var var
LogHypISA Hyp
HAS 1 Expr
HAS 1 ExprRPN


Sym[]     expr
Stmt[]    exprRPN
VarHyp[]  varHypArray
AssrtISA Stmt
HAS 1 Expr
HAS 1 ExprRPN
HAS 1 MandFrame
Y

Sym[]     expr
Stmt[]    exprRPN
VarHyp[]  varHypArray
MandFrame mandFrame
AxiomISA Assrt



Theorem
ISA Assrt
HAS 1 Proof
HAS 1 OptFrame


Stmt[]    proof
OptFrame  optFrame
DjVarsArray HAS 0-M DjVars
NA

DjVars[]  djVars
OptDjVarsArray HAS 0-M DjVars
NA

DjVars[]  optDjVars
HypArray  HAS 0-M Hyp
NA

Hyp[]     hypArray
OptHypList HAS 0-M Hyp
NA

Hyp[]     optHypArray
MandFrameHAS 1 HypArray
HAS 1 DjVarsArray


Hyp[]     hypArray
DjVars[]  djVarsArray
OptFrameHAS 1 OptHypArray
HAS 1 OptDjVarsArray



Hyp[]     optHypArray
DjVars[]  optDjVarsArray
===================
(OTHER) CONTENTS OF "LogicalSystem.java" follow:
===================
======================



======================
===



===
===========



===========
========================
Notes?


========================
ScopeDef
HAS ArrayList Var
HAS ArrayList VarHyp
HAS ArrayList LogHyp
HAS ArrayList DjVars


"active" statements in current scope
scopeDefList
HAS ArrayList ScopeDef
NA

ScopeDef definitions at a scope level (global scope = 0, followed by 1, 2, ...)
symTbl
HAS Map
NA
String Sym.id
Map symTbl
(mandatory table:
keep unused symbols
from garbage coll.)
stmtTbl
HAS Map
NA
String Stmt.label
Map     stmtTbl