Metamath uses disjoint variables instead of proper substitution as a 
primitive notion, and as stated in the Metamath book, "substitution and 
equality are intimately tied to each other" in Tarski's system for 
first-order logic with equality. The book also claims that "the traditional 
approach is also possible", so how do I encode traditional first-order 
logic without equality in Metamath? I tried something like this (added to 
set.mm):
$c NFQ $.
$v S S_1 S_2 v $.
${
$f setvar v $.
$f wff S $.
$a wff NFQ v S $.
$d v S $.
$a |- NFQ v S $.
$}
${
$f setvar v $.
$f wff S_1 S S_2 $.
$f |- NFQ v S $.
$d v S_1 $.
$d v S_2 $.
$a |- NFQ x S_1 S S_2 $.
$}
but this doesn't work because Metamath requires every variable to have a 
typecode. There are many other stupid restrictions in Metamath, for example 
that the typecode of variables are global, that label tokens may not 
collide with math symbol tokens, or that dummy disjoint variable 
restrictions are required. How do I encode the traditional notion of free 
variables and proper substitution in Metamath? And why do these useless 
restrictions exist even though they have nothing to do with proof validity?

-- 
You received this message because you are subscribed to the Google Groups 
"Metamath" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/metamath/3bbe900e-583d-47ec-96bf-58673bbd2527%40googlegroups.com.

Reply via email to