nom-0.1.0.1: Name-binding & alpha-equivalence

Copyright(c) Murdoch J. Gabbay 2020
LicenseGPL-3
Maintainermurdoch.gabbay@gmail.com
Stabilityexperimental
PortabilityPOSIX
Safe HaskellNone
LanguageHaskell2010

Language.Nominal.Properties.SubSpec

Description

Duplicating some tests from Language.Nominal.Properties.Examples.SystemFSpec, which has good inductive datatypes to substitute on.

Synopsis

Documentation

iprop_sub_id :: (KSub ntyp x y, Eq y) => (ntyp -> x) -> ntyp -> y -> Bool Source #

y[n-> var n] = y

iprop_sub_fresh :: (Typeable s, Swappable y, Swappable n, KSub (KName s n) x y, Eq y, Show y) => KName s n -> x -> y -> Property Source #

n # y => y[n->x] = y

iprop_sub_perm :: (Typeable s, Swappable y, Swappable n, KSub (KName s n) x y, Eq y, Show y) => (KName s n -> x) -> KName s n -> KName s n -> y -> Property Source #

n' # y => y[n->n'] = (n' n).y

prop_sub_abs_1 :: Name () -> Name () -> Name () -> [Name ()] -> Property Source #

prop_sub_abs_1' :: Name () -> Name () -> Name () -> [Name ()] -> Property Source #

prop_sub_abs_3 :: Name () -> Name () -> [Name ()] -> Bool Source #