Tealeaves.Axioms
Tealeaves.Tactics.Debug
Tealeaves.Tactics.CoreTactics
Tealeaves.Tactics.Prelude
Tealeaves.Misc.Product
Tealeaves.Classes.EqDec_eq
Tealeaves.Classes.Category
Tealeaves.Classes.Monoid
- Monoids
- Monoid Constructions
- Increment and Pre-increment
- Preordered Monoids
- Opposite Monoid
- Commutative Monoids
- Idempotent Monoids
- Notations
Tealeaves.Classes.Comonoid
Tealeaves.Misc.Iterate
Tealeaves.Misc.NaturalNumbers
Tealeaves.Misc.Prop
Tealeaves.Classes.Functor
Tealeaves.Functors.Identity
Tealeaves.Functors.Compose
Tealeaves.Misc.Strength
Tealeaves.Classes.Categorical.Applicative
- Applicative Functors
- The Category of Applicative Functors
- The "ap" combinator
<⋆>
- Monoids as Constant Applicative Functors
- Notations
Tealeaves.Classes.Categorical.ApplicativeCommutativeIdempotent
Tealeaves.Classes.Categorical.Monad
Tealeaves.Classes.Categorical.Comonad
Tealeaves.Classes.Categorical.BeckDistributiveLaw
Tealeaves.Classes.Categorical.Bimonad
Tealeaves.Classes.Categorical.RightModule
Tealeaves.Classes.Categorical.RightComodule
Tealeaves.Classes.Categorical.ParamComonad
Tealeaves.Classes.Kleisli.Applicative
Tealeaves.Classes.Kleisli.Monad
Tealeaves.Classes.Kleisli.Comonad
Tealeaves.Adapters.CategoricalToKleisli.Monad
Tealeaves.Adapters.KleisliToCategorical.Monad
Tealeaves.Adapters.Roundtrips.Monad
Tealeaves.Functors.Early.Reader
Tealeaves.Classes.Categorical.DecoratedFunctor
Tealeaves.Classes.Kleisli.DecoratedFunctor
Tealeaves.Adapters.CategoricalToKleisli.Comonad
Tealeaves.Adapters.CategoricalToKleisli.DecoratedFunctor
Tealeaves.Adapters.KleisliToCategorical.DecoratedFunctor
Tealeaves.Adapters.Roundtrips.DecoratedFunctor
Tealeaves.Functors.Early.Writer
Tealeaves.Classes.Categorical.DecoratedMonad
- The shift operation
- Decorated Monads
- Decorated Right Modules
- Basic Properties of shift on Monads
- Pushing Decorations through a Monoid Homomorphism
Tealeaves.Classes.Kleisli.DecoratedMonad
Tealeaves.Adapters.CategoricalToKleisli.DecoratedMonad
Tealeaves.Adapters.KleisliToCategorical.DecoratedMonad
Tealeaves.Adapters.Roundtrips.DecoratedMonad
Tealeaves.Classes.Categorical.TraversableFunctor
Tealeaves.Classes.Kleisli.TraversableFunctor
Tealeaves.Classes.Kleisli.TraversableCommIdemFunctor
Tealeaves.Functors.Early.Batch
- The Batch Functor
- Applicative Functor Instance
- The
runBatch
Operation Batch
as a Parameterized MonadBatch
as a Parameterized ComonadBatch
is Traversable in the First Argument- Notations
- Arguments
Tealeaves.Classes.Coalgebraic.TraversableFunctor
Tealeaves.Adapters.CategoricalToKleisli.TraversableFunctor
Tealeaves.Adapters.KleisliToCategorical.TraversableFunctor
Tealeaves.Adapters.CoalgebraicToKleisli.TraversableFunctor
Tealeaves.Adapters.KleisliToCoalgebraic.TraversableFunctor
Tealeaves.Adapters.Roundtrips.TraversableFunctor
- Categorical ~> Kleisli ~> Categorical
- Kleisli ~> Categorical ~> Kleisli
- Coalgebraic ~> Kleisli ~> Coalgebraic (TODO)
- Kleisli ~> Coalgebraic ~> Kleisli (TODO)
Tealeaves.Classes.Categorical.TraversableMonad
Tealeaves.Classes.Kleisli.TraversableMonad
Tealeaves.Classes.Coalgebraic.TraversableMonad
Tealeaves.Adapters.CategoricalToKleisli.TraversableMonad
Tealeaves.Adapters.KleisliToCategorical.TraversableMonad
Tealeaves.Adapters.CoalgebraicToKleisli.TraversableMonad
Tealeaves.Adapters.KleisliToCoalgebraic.TraversableMonad
Tealeaves.Adapters.Roundtrips.TraversableMonad
- Categorical ~> Kleisli ~> Categorical
- Kleisli ~> Categorical ~> Kleisli
- Coalgebraic ~> Kleisli ~> Coalgebraic
- Kleisli ~> Coalgebraic ~> Kleisli
Tealeaves.Classes.Categorical.DecoratedTraversableFunctor
Tealeaves.Classes.Kleisli.DecoratedTraversableFunctor
Tealeaves.Classes.Kleisli.DecoratedTraversableCommIdemFunctor
Tealeaves.Classes.Coalgebraic.DecoratedTraversableFunctor
Tealeaves.Adapters.CategoricalToKleisli.DecoratedTraversableFunctor
Tealeaves.Adapters.KleisliToCategorical.DecoratedTraversableFunctor
Tealeaves.Adapters.CoalgebraicToKleisli.DecoratedTraversableFunctor
Tealeaves.Adapters.KleisliToCoalgebraic.DecoratedTraversableFunctor
Tealeaves.Adapters.Roundtrips.DecoratedTraversableFunctor
Tealeaves.Classes.Kleisli.DecoratedTraversableMonad
Tealeaves.Classes.Categorical.DecoratedTraversableMonad
Tealeaves.Classes.Coalgebraic.DecoratedTraversableMonad
Tealeaves.Adapters.CategoricalToKleisli.DecoratedTraversableMonad
Tealeaves.Adapters.KleisliToCategorical.DecoratedTraversableMonad
Tealeaves.Adapters.KleisliToCoalgebraic.DecoratedTraversableMonad
Tealeaves.Adapters.CoalgebraicToKleisli.DecoratedTraversableMonad
Tealeaves.Adapters.Roundtrips.DecoratedTraversableMonad
Tealeaves.Adapters.Compositions.DecoratedTraversableModule
Tealeaves.Adapters.MonadToApplicative
Tealeaves.Categories.Type
Tealeaves.Categories.TypeFamily
- The Category of Constant
K
-Indexed Families - Specialized Notations for Multisorted Tealeaves
- The Category of
K
-Indexed Families - Targeted Morphisms
Tealeaves.Categories.DecoratedFunctor
- A Decorated Functor is Precisely a Right comodule of
(E ×)
- Decorated Functors Form a Monoidal Category
- Monad Operations in As Homomorphisms of Decorated Functors
Tealeaves.Categories.TraversableFunctor
- Monoid Structure of Traversable Functors
- Monad Operations as Homomorphisms between Traversable Functors
Tealeaves.Categories.DecoratedTraversableFunctor
Tealeaves.Functors.Early.Subset
- Subsets
- The
subset
Monoid - Functor Instance
- Monad Instance (Categorical)
- Monad Instance (Kleisli)
- Applicative Instance
Tealeaves.Classes.Categorical.ContainerFunctor
- Container-Like Functors
- Container Instance for
subset
- Basic Properties of Containers
- Quantification over Elements (
Forall
,Forany
) - Notations
Tealeaves.Classes.Kleisli.ContainerMonad
Tealeaves.Functors.Early.Ctxset
Tealeaves.Classes.Kleisli.DecoratedContainerFunctor
Tealeaves.Classes.Kleisli.DecoratedContainerMonad
Tealeaves.Functors.Early.List
- Automation:
simpl_list
- Monoid Instance
- Functor Instance
- Monad Instance (Categorical)
- Traversable Monad Instance (Kleisli)
- Traversable Functor Instance (Kleisli)
- Monad Instance (Kleisli)
- Traversable Instance (Categorical)
- Folding over lists
- Container Instance
Tealeaves.Classes.Categorical.ShapelyFunctor
Tealeaves.Functors.Early.Environment
Tealeaves.Classes.Kleisli.DecoratedShapelyFunctor
Tealeaves.Functors.Backwards
Tealeaves.Functors.Constant
- Inductive Definition of the Constant Functor
- Computational Definition of the Constant Functor
- Simplification Support
Tealeaves.Functors.ProductFunctor
Tealeaves.Functors.Diagonal
Tealeaves.Classes.Kleisli.Theory.TraversableFunctor
- Miscellaneous Properties of Traversable Functors
- Factorizing Operations through
runBatch
- Traversals by Particular Applicative Functors
- Derived Operation:
mapReduce
mapReduce
Corollary:tolist
mapReduce
Corollary:tosubset
mapReduce
Corollary:Forall, Forany
mapReduce
Corollary:plength
mapReduce
by a Commutative Monoid- Notations
Tealeaves.Classes.Categorical.Theory.TraversableFunctor
Tealeaves.Classes.Kleisli.Theory.TraversableCommutativeIdempotent
Tealeaves.Classes.Kleisli.Theory.ContainerMonad
Tealeaves.Classes.Kleisli.Theory.TraversableMonad
Tealeaves.Classes.Kleisli.Theory.DecoratedContainerFunctor
Tealeaves.Classes.Kleisli.Theory.DecoratedTraversableFunctor
- Theory of Decorated Traversable Functors
- Derived Operation
mapdReduce
- The
toctxlist
operation toctxset
and∈d
- Quantification with Context:
Forall_ctx
andForany_ctx
Tealeaves.Classes.Kleisli.Theory.DecoratedContainerMonad
Tealeaves.Classes.Kleisli.Theory.DecoratedTraversableMonad
Tealeaves.Functors.Ctxset
Tealeaves.Functors.List
toBatch
Instancemap
equality inversion lemmas- Shapely Functor Instance for list
- Reasoning principles for
shape
on listable functors - Quantification Over Elements
- Specification of
Permutation
- Miscellaneous
- Un-con-sing Nonempty Lists
- Filtering Lists
Tealeaves.Functors.Environment
Tealeaves.Functors.Option
Tealeaves.Functors.Pathspace
Tealeaves.Functors.Pair
Tealeaves.Functors.Reader
Tealeaves.Functors.State
Tealeaves.Functors.Store
Tealeaves.Functors.Subset
Tealeaves.Functors.Writer
Tealeaves.Functors.ListHistory
Tealeaves.Functors.List_Telescoping_General
- Prefix Decoration Operation for the List Functor
- The
Z
Comonad (Categorical) - Traversable Functor Instance (Kleisli)
- Decoration Commutes with Traversals
- Mapdt for
list
andZ
- Decorate traversable functor instance
- Mapd for
list
- Mapd for
Z
- Decorated Functor Instance for List
- Comonad instance on
Z
Dist
instance onZ
Tealeaves.Functors.Vector
Tealeaves.Functors.KStore
Tealeaves.Functors.VectorRefinement
- Refinement-style vectors
- Functor instance
- Traversable instance
- SameSetRight
- Elimination principles
tosubset
on Vectors- Zipping vectors
- Appending Vectors
- Reversing Vectors
- Notations
Tealeaves.Functors.Batch
mapReduce
Rewriting Lemmas- Simultaneous Induction on Two
Batch
es of the Same Shape runBatch
specialized to monoids- The
length_Batch
Operation - Specification for
traverse
viarunBatch
Batch _ B C
is a traversable monad- Deconstructing
Batch A B C
into Shape and ContentsBatch_make
andBatch_contents
Batch_replace_contents
- Rewriting rules
- Relating
tolist
andBatch_contents
- Rewriting Rules for
<⋆>
- Same Shape Iff Same
Batch_make
- Two Lemmas for
shape
andlength_Batch
- Same Shape Implies Same
Batch_replace_contents
Batch_make
Equal IffBatch_replace_contents
Equal- Similarity Lemmas for
Batch_make
- Similarity Laws for
Batch_replace_contents
- Naturality of
Batch_make
- Naturality of
Batch_contents
- Specification for
Batch_replace_contents
- Replacing Contents Does Not Change
length_Batch
,shape
, orBatch_make
- Lens-like laws
- Theory About Batch
- Representation theorems
- Annotating
Batch
with Proofs of Occurrence runBatch
Assuming Proofs of Occurrence
Tealeaves.Adapters.Isomorphisms.BatchtoKStore
Tealeaves.Theory.TraversableFunctor
- Miscellaneous Properties Concerning
toBatch
- Length of
toBatch
is polymorphic - Traversable Functors are Containers
plength
- Factorizing Terms into
shape
andcontents
- Operations on Vectors
- Lemmas regarding
trav_make
- Naturality of
trav_contents
andtrav_make
- Relating
tolist
andtrav_contents
- Lens-like laws
- Lemmas regarding
shape
andtrav_make
- Lemmas regarding
trav_make
- Representation theorems
- Corollary: Spec for
traverse
After Applyingtrav_make
- Corollary: Specs for Functor Operations in Terms of Lens Operations
- Corollary: Specification for
shape
trav_make
is Preserved byshape
tosubset
is Preserved bytrav_contents
- Lemmas about
shape
- Zipping Terms
- Uniqueness
Tealeaves.Theory.TraversableMonad
Tealeaves.Theory.DecoratedTraversableFunctor
- Properties of
toBatch3
- Factoring Operations Through
toBatch3
- Respectfulness Properties
- Shapeliness
- Deconstructing with refinement-type vectors
- Miscellaneous
- Lens Laws
- Representation theorems
Tealeaves.Theory.DecoratedTraversableMonad
Tealeaves.Theory.LiftRel.TraversableFunctor
Tealeaves.Theory.LiftRel.DecoratedTraversableFunctor
Tealeaves.Functors.List_Telescoping
- Telescoping Decoration for the List Functor
- The
decorate_telescoping_list
Operation - Alternative Characterization of
decorate_telescoping_list
- Rewriting Rules for
decorate_telescoping_list
- Equivalence
- Associated
mapdt
Operation - Rewriting Rules for
decorate_telescoping_list
- Typeclass Instance
- Derived Operation Compatibility
- Associated
toctxlist
andtoctxset
Operations
- The
- Fully Recursive Decoration for the List Functor
Tealeaves.Classes.Functor2
Tealeaves.Functors.Batch2
Tealeaves.Classes.Categorical.Monad2
Tealeaves.Classes.Categorical.TraversableFunctor2
Tealeaves.Functors.L
Tealeaves.Classes.Categorical.TraversableMonad2
Tealeaves.Classes.Categorical.DecoratedFunctorPoly
Tealeaves.Classes.Categorical.DecoratedMonadPoly
Tealeaves.Classes.Kleisli.TraversableFunctor2
Tealeaves.Classes.Kleisli.DecoratedFunctorZ
Tealeaves.Classes.Kleisli.DecoratedFunctorPoly
Tealeaves.Classes.Kleisli.DecoratedMonadPoly
Tealeaves.Classes.Kleisli.DecoratedTraversableFunctorPoly
Tealeaves.Classes.Kleisli.DecoratedTraversableMonadPoly
Tealeaves.Adapters.CategoricalToKleisli.DecoratedFunctorZ
Tealeaves.Adapters.CategoricalToKleisli.DecoratedFunctorPoly
Tealeaves.Adapters.CategoricalToKleisli.DecoratedMonadPoly
Tealeaves.Adapters.CategoricalToKleisli.DecoratedTraversableFunctorPoly
Tealeaves.Adapters.CategoricalToKleisli.DecoratedTraversableMonadPoly
Tealeaves.Classes.Multisorted.Multifunctor
Tealeaves.Classes.Multisorted.DecoratedTraversableMonad
- Multisorted DTMs
- Derived Instances
- Derived Multisorted Operations
- Rewriting Rules
- Composition Between
mbinddt
and Other Operations - Composition between Derived Operations
- Decorated Monad (
mbindd
) - Decorated Traversable Functor (
mmapdt
) - Traversable Monad (
mbindt
) - Heterogeneous Composition Laws
- Monad (
mbind
) - Decorated Functor (
mmapd
) - Traversable Functor (
mmapt
) - Functor (
mmap
)
Tealeaves.Functors.Multisorted.Batch
Tealeaves.Adapters.KleisliToCoalgebraic.Multisorted.DTM
Tealeaves.Classes.Multisorted.Theory.Container
Tealeaves.Classes.Multisorted.Theory.Targeted
- Targeted substitution-building combinators: btg and btgd
- Characterizing occurrences post-operation (targetted operations)
Tealeaves.Classes.Multisorted.Theory.Foldmap
Tealeaves.Theory.Multisorted.DecoratedTraversableMonad
Tealeaves.Classes.Full.Monad
Tealeaves.Classes.Full.DecoratedFunctor
Tealeaves.Classes.Full.DecoratedMonad
Tealeaves.Simplification.Support
Tealeaves.Simplification.Binddt
Tealeaves.Simplification.DeriveDTM
Tealeaves.Simplification.Simplification
Tealeaves.Simplification.MBinddt
Tealeaves.Simplification.Tests.Support
Tealeaves.Backends.LN.LN
- Deriving All Other Typeclass Instances from a DTM
- Locally nameless variables
- Locally nameless operations
- Some Tactics
- Basic principles and lemmas
- Utilities for reasoning at the leaves
- Free variables
- Locally nameless metatheory
- Occurrence analysis: substitution with contexts
- Occurrence analysis: substitution without contexts
- Free variables after substitution
- Upper and lower bounds for leaves after substitution
- Substitution of fresh variables
- Composing substitutions
- Commuting two substitutions
- Local closure is preserved by substitution
- Decompose substitution into closing/opening
- Substitution when
u
is a LN - Substitution by the same variable is the identity
- Free variables after variable closing
- Variable closing and local closure
- Upper and lower bounds on free variables after opening
- Opening a locally closed term is the identity
- Opening followed by substitution
- Closing followed by substitution
- Decompose opening into variable opening followed by substitution
- Opening by a variable, followed by non-equal substitution
- Closing, followed by opening
- Opening by a LN reduces to an mapkr
- Opening, followed by closing
- Opening and local closure
- Injectivity of opening
Tealeaves.Backends.LN.Simplification
Tealeaves.Backends.LN.Parallel
Tealeaves.Backends.Common.AssocList
- The
alist
functor envmap
- Domain and range on alists
- Specifications for operations on association lists
- Specifications for
∈
and dom, domset, range - Support for prettifying association lists
- Tactics for normalizing alists
- Induction principles for alists
- Rewriting principles for disjoint
- Tactical lemmas for disjoint
- Tactical lemmas for uniq
- Rewriting principles for uniq
- More facts about uniq
- Stronger theorems for
∈
on uniq lists
- Specifications for
- Facts about binds
- Tactic support for picking fresh atoms
Tealeaves.Backends.LN
Tealeaves.Backends.Multisorted.LN.LN
- Binders contexts
- Locally nameless variables
- Syntax operations for locally nameless
- Specifications for
free
- Lemmas for local reasoning
- Metatheory for the
subst
operation- LN analysis with contexts
- LN analysis without contexts
- Free variables after substitution
- Upper and lower bounds for leaves after substitution
- Substitution of fresh variables
- Composing substitutions
- Commuting two substitutions
- Local closure is preserved by substitution
- Decompose substitution into closing/opening
- Substitution when
u
is a LN - Substitution by the same variable is the identity
- Metatheory for
close
- Free variables after variable closing
- Variable closing and local closure
- Metatheory for
open
- Upper and lower bounds on free variables after opening
- Opening a locally closed term is the identity
- Opening followed by substitution
- Decompose opening into variable opening followed by substitution
- Opening by a variable, followed by non-equal substitution
- Closing, followed by opening
- Opening by a LN reduces to an kmapd
- Opening, followed by closing
- Opening and local closure
Tealeaves.Backends.Multisorted.LN
Tealeaves.Backends.DB.DB
- Closure
- Incrementing/lifting indices
- Cons operation
- Renaming
- De Bruijn operations
- Properties of substitution
- Notations
- Other lemmas
Tealeaves.Backends.DB.Simplification
- Extra lemmas
- Unfolding up
- Simplifying renaming via unfolding
- Simplifying substitution via unfolding
- Simplifying substitution a la Autosubst
Tealeaves.Backends.DB.AutosubstShim
Tealeaves.Backends.DB
Tealeaves.Misc.PartialBijection
Tealeaves.Backends.Adapters.Key
Tealeaves.Backends.Adapters.LNtoDB
Tealeaves.Backends.Adapters.DBtoLN
Tealeaves.Backends.Adapters.Roundtrips.LNDB
Tealeaves.Backends.Common.Names
Tealeaves.Backends.Common.AtomSet
Tealeaves.Adapters.MonoidHom.DecoratedTraversableMonad
Tealeaves.Adapters.MonoidHom.Categorical
Tealeaves.Adapters.PolyToMono.Categorical.DecoratedFunctor
- Parameterized Decorated Functor to Decorated in Variables
- Parameterized Decorated Functor to Decorated in Binders
Tealeaves.Adapters.PolyToMono.Categorical.TraversableFunctor
Tealeaves.Adapters.PolyToMono.Categorical.DecoratedMonad
Tealeaves.Adapters.PolyToMono.Categorical.TraversableMonad
Tealeaves.Adapters.PolyToMono.Categorical.DecoratedTraversableMonad
Tealeaves.Classes.Categorical.DecoratedTraversableFunctorPoly
Tealeaves.Classes.Categorical.DecoratedTraversableMonadPoly
Tealeaves.Adapters.PolyToMono.PDTM
Tealeaves.Backends.Nominal.Common.Hmap
Tealeaves.Backends.Nominal.Common.Binding
Tealeaves.Backends.Nominal.Common.Freshening
- Freshen an Entire List
- Local Definition of Assigning Unique Names to a list
- Assign Unique Names to a list
Tealeaves.Backends.Nominal.FV
Tealeaves.Backends.Nominal.Barendregt
Tealeaves.Backends.Nominal.Alpha
Tealeaves.Backends.Adapters.NominaltoLN
Tealeaves.Backends.Adapters.LNtoNominal
Tealeaves.Examples.Lambda.Confluence
Tealeaves.Examples.Lambda.MapWithPolicyDemo
Tealeaves.Examples.JAR.TranslateDemo
Tealeaves.Examples.STLC.Syntax
Tealeaves.Examples.STLC.CompatTest
Tealeaves.Examples.STLC.SyntaxCategorical
Tealeaves.Examples.STLC.TypeSoundness
Tealeaves.Simplification.Tests.STLC_Binddt
Tealeaves.Simplification.Tests.STLC_Container
Tealeaves.Simplification.Tests.STLC_LN
Tealeaves.Simplification.Tests.STLC_DB
Tealeaves.Examples.VariadicLet.Terms
Tealeaves.Examples.VariadicLet.Instances.Simple
Tealeaves.Examples.VariadicLet.Instances.Tele
Tealeaves.Examples.VariadicLet.Instances.LetRec
Tealeaves.Examples.VariadicLet.Demo
Tealeaves.Examples.SystemF.Syntax
- The index K
- System F syntax and typeclass instances
- Proofs of the DTM axioms
- System F type system and operational rules
Tealeaves.Examples.SystemF.Contexts
- Tactical support
- Structural lemmas for
scoped
- Infrastructural lemmas for contexts and well-formedness predicates
- General properties of
ok_kind_ctx
- Tactical support for
ok_kind_ctx
- General properties of
ok_type
- Structural properties of
ok_type Δ τ
inΔ
- General properties of
ok_type_ctx
- Tactical support for
ok_type_ctx
- Structural properties in
Δ
inok_type_ctx Δ Γ
. - Structural properties of
ok_term Δ Γ t
inΔ
- Structural properties of
ok_term Δ Γ t
inΓ
- General properties of