Fixpoint Equations
Fixpoint equations are elementary equations. They are represented in the form .
Domain
A domain is a finite partially-ordered set with a least element. The domain is a set with the order relation .
Monotonic Functions
The function where is a domain is monotonic if:
The function must map elements that are less than or equal to each other to elements that are also less than or equal to each other.
A different property that is often confused with monotonicity is extensivity, which says that .
Intuition
Think of as an electrical circuit mapping input to output. is monotonic if increasing the input voltage causes the output voltage to increase or stay the same. is extensive if the output voltage is greater than or equal to the input voltage.
Fixpoint of the function of a domain
Suppose , a value is a fixpoint of if . maps to itself.
Example with D being a powerset of {a,b,c}
Identity function:
- Every point in the domain is a fixpoint of this function
- {a}, {a,b}, {a,c}, {a,b,c} are all fixpoints
- no fixpoints
Fixpoint Theorem with Multiple Functions
If is a domain and are monotonic, the following system of simultaneous equations has a least solution computed in the obvious way:
You can generalize this to more than two equations and to the case when has a greatest element .
Example with Multiple Functions
Power-Set Domains ()
Consider a power set domain
- Set union and intersection are monotonic functions
- So we can use them in systems of fixpoint equations
Things to think about
If a system of fixpoint equations has multiple equations for an unknown, is the system still guaranteed to have a solution? Ex: consider the system and
Example of Power-Set Domain
Equations:
Join and Meet
If is a poset and is a lower bound of if .
This is an easy generalization to lower bound of a set of elements from .
In general, a set may have many lower bounds.
Greatest lower bound (glb) of : greatest element of that is a lower bound of :
- Caveat: glb may not always exist
If for every pair of elements glb({x,y}) exists, we can define a function called meet()
- Meet is idempotent (), commutative, and associative
Meet semilattice: a partially ordered set in which every pair of elements has a glb
Analogous notions: upper bounds, least upper bounds, join ()
Join semilattice: analogous notion
Lattice: both a meet and join semilattice