MatchingLogic.EntryIII.SignatureRestriction #
Regard a pattern over a finite sub-signature as a pattern over S.
Equations
- MatchingLogic.Pattern.liftSignature F (MatchingLogic.Pattern.var x_1) = MatchingLogic.Pattern.var x_1
- MatchingLogic.Pattern.liftSignature F (MatchingLogic.Pattern.app sigma args) = MatchingLogic.Pattern.app ↑sigma fun (i : Fin (S.arity ↑sigma)) => MatchingLogic.Pattern.liftSignature F (args i)
- MatchingLogic.Pattern.liftSignature F (phi.imp psi) = (MatchingLogic.Pattern.liftSignature F phi).imp (MatchingLogic.Pattern.liftSignature F psi)
- MatchingLogic.Pattern.liftSignature F MatchingLogic.Pattern.bot = MatchingLogic.Pattern.bot
- MatchingLogic.Pattern.liftSignature F (MatchingLogic.Pattern.ex x_1 phi) = MatchingLogic.Pattern.ex x_1 (MatchingLogic.Pattern.liftSignature F phi)
Instances For
Restrict a pattern whose symbol support lies in F to the sub-signature.
Equations
- One or more equations did not get rendered due to their size.
- MatchingLogic.Pattern.restrictSignature F (MatchingLogic.Pattern.var x_2) x_3 = MatchingLogic.Pattern.var x_2
- MatchingLogic.Pattern.restrictSignature F MatchingLogic.Pattern.bot x_2 = MatchingLogic.Pattern.bot
- MatchingLogic.Pattern.restrictSignature F (phi.imp psi) h = (MatchingLogic.Pattern.restrictSignature F phi ⋯).imp (MatchingLogic.Pattern.restrictSignature F psi ⋯)
- MatchingLogic.Pattern.restrictSignature F (MatchingLogic.Pattern.ex x_2 phi) h = MatchingLogic.Pattern.ex x_2 (MatchingLogic.Pattern.restrictSignature F phi h)
Instances For
Lifting a restricted pattern recovers the original ambient pattern.
Lifting commutes with the raw variable-for-variable substitution.
Free variables are unchanged by signature lifting.
Capture-freedom is preserved when a pattern is lifted to a larger signature.
Lifting commutes with replacing an argument of an application.
The lifted form of an application with one replaced argument.
Lifting commutes with propositional-pattern substitution.
Regard an application context over a finite sub-signature as one over S.
Equations
- One or more equations did not get rendered due to their size.
- MatchingLogic.AppCtx.liftSignature F MatchingLogic.AppCtx.hole = MatchingLogic.AppCtx.hole
Instances For
A natural-number serialization retaining every application argument.
Equations
- One or more equations did not get rendered due to their size.
- (MatchingLogic.Pattern.var x_1).signatureNatCode = Nat.pair 0 x_1
- (phi.imp psi).signatureNatCode = Nat.pair 2 (Nat.pair phi.signatureNatCode psi.signatureNatCode)
- MatchingLogic.Pattern.bot.signatureNatCode = Nat.pair 3 0
- (MatchingLogic.Pattern.ex x_1 phi).signatureNatCode = Nat.pair 4 (Nat.pair x_1 phi.signatureNatCode)
Instances For
The natural serialization is injective whenever the symbol type is encodable.
A finite signature yields a countable type of natural-variable patterns.
A derivation over a finite sub-signature can be replayed over S.