octalgo.datalogcert.fixpoint
The DatalogCert Library CNRS & Université Paris-Sud, Université Paris-Saclay Copyright 2016-2019 : FormalData Original Authors: Véronique Benzaken Évelyne Contejean Stefania Dumbrava
Seventh part of the original file "pengine.v" with modifications
Set Implicit Arguments.
If after n iteration, fixpoint is reached so is after m for m > n
Lemma iter_leq_fix T (f : T → T) x n m (i_eq: iter n f x = iter n.+1 f x) :
n ≤ m → iter m f x = iter m.+1 f x.
n ≤ m → iter m f x = iter m.+1 f x.
note: minsetP lemma subsumes all this
Increasing function
Inflating function
Let f be an increasing function on sets ot T
iterf is increasing
ub and s0 sets of T where T is a finite type with s0 subset of ub
Variables (T : finType) (s0 ub : {set T}).
Hypothesis (s0_bound : s0 \subset ub).
Implicit Types (s : {set T}) (f : {set T} → {set T}).
Variables (f : {set T} → {set T}).
Hypothesis (s0_bound : s0 \subset ub).
Implicit Types (s : {set T}) (f : {set T} → {set T}).
Variables (f : {set T} → {set T}).
Hypothesis (f_mono : monotone f) (f_inc : increasing f) (f_ubound: ubound).
Notation iterf_incr n := (iterf f s0 n).
Notation lfp_incr := (iterf f s0 #|ub|).
Notation iterf_incr n := (iterf f s0 n).
Notation lfp_incr := (iterf f s0 #|ub|).
lfp_incr, the N iterate of f where N is the cardinal of ub
is a fixpoint for f
Adapted from the lfpE lemma in http://www.ps.uni-saarland.de/extras/jaritp14/
(C) Christian Doczkal and Gert Smolka
lfp_incr is smaller than any fixpoint that would be greater than
s0 the starting point of the iterations
Rephrase the existence of the LFP and its properties