Nuprl Definition : sqequal def

This is Doug Howe's computational bi-simulation relation on terms.
We call if "squiggle" equality or `sqequal`.
It is equivalent to the conjunction of the comutational simulation
relations ⌜s ≤ t⌝ and ⌜t ≤ s⌝. (see: sqequalSqle)

The simulation ⌜s ≤ t⌝ is a coinductive relation 
on terms that says (essentially) that for any canonical form X, 
if s computes to ⌜X[a1; a2; ...]⌝ 
then there exist terms b1, b2,... such that 
t computes to ⌜X[b1; b2; ...]⌝
and ⌜a1 ≤ b1⌝,⌜a2 ≤ b2⌝,...

Using "Howe's trick" this relation is extended to open terms 
(i.e. terms with free variables) 
and proved to be a "contexual congruence relation".

It is an invariant of the Nuprl type system that all types are closed under
⌜s ~ t⌝. This justifies the rules for sqequal substitution
sqequalSubstitution
sqequalHypSubstitution 
 ⋅

s ~ t ==  PRIMITIVE



Rules referencing :  computationStep,  computeAll,  isintReduceTrue,  isatomReduceTrue,  isAtom2ReduceTrue,  isAtom1ReduceTrue,  isintReduceAtom,  sqequalAxiom,  sqequalElimination,  sqequalDefinition,  sqequalSqle,  sqequalReflexivity,  sqequalTransitivity,  sqequalBase,  sqequalSubstitution,  sqequalHypSubstitution,  sqequalRule,  sqequalExtensionalEquality,  sqequalIntensionalEquality,  int_eqReduceTrueSq,  int_eqReduceFalseSq,  atomn_eqReduceTrueSq,  atom_eqReduceTrueSq,  atomn_eqReduceFalseSq,  atom_eqReduceFalseSq,  callbyvalueReduce,  callbyvalueApplyCases,  exceptionApplyCases,  tryReduceValue,  sqleLambda,  exceptionSqequal,  exceptionLess,  exceptionInteq,  exceptionAtomeq,  exceptionAtomeq1,  exceptionAtomeq2,  exceptionAdd,  exceptionMultiply,  exceptionDivide,  exceptionRemainder,  ispairCases,  isintCases,  isatomCases,  isaxiomCases,  islambdaCases,  isinlCases,  isinrCases,  isatom1Cases,  isatom2Cases,  lessCases
FDL editor aliases :  sim

Latex:
s  \msim{}  t  ==    PRIMITIVE



Date html generated: 2016_07_08-PM-04_46_22
Last ObjectModification: 2015_10_30-AM-11_34_31

Theory : core_1


Home Index