Agda-2.6.1.1: A dependently typed functional programming language and proof assistant
Safe HaskellNone
LanguageHaskell2010

Agda.TypeChecking.LevelConstraints

Synopsis

Documentation

simplifyLevelConstraint Source #

Arguments

:: Constraint

Constraint c to simplify.

-> [Constraint]

Other constraints, enable simplification.

-> Maybe [Constraint]

Just: list of constraints equal to the original c. Nothing: no simplification possible.

simplifyLevelConstraint c cs turns an c into an equality constraint if it is an inequality constraint and the reverse inequality is contained in cs.

The constraints don't necessarily have to live in the same context, but they do need to be universally quanitfied over the context. This function takes care of renaming variables when checking for matches.