## Lazy Least Fixed Points in ML

### BibTeX

@MISC{Pottier_lazyleast,

author = {François Pottier},

title = {Lazy Least Fixed Points in ML},

year = {}

}

### OpenURL

### Abstract

In this paper, we present an algorithm for computing the least solution of a system of monotone equations. This algorithm can be viewed as an effective form of the following well-known fixed point theorem: Theorem Let V be a finite set of variables. Let (P, ≤, ⊥) be a partially ordered set

### Citations

2004 |
Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints
- Cousot, Cousot
- 1977
(Show Context)
Citation Context ...e empty word, and to compute “first” and “follow” sets. More generally, least fixed point computations are required in data flow analysis (Kildall, 1973; Kam & Ullman, 1976), abstract interpretation (=-=Cousot & Cousot, 1977-=-), and model checking of temporal logic formulae (Liu & Smolka, 1998). The simplest algorithm, known as Kleene iteration, computes a sequence of valuations, defined by φ0 = λv.⊥ and φn+1 = λv.E(v)(φn)... |

761 | Separation logic: A logic for shared mutable data structures
- Reynolds
- 2002
(Show Context)
Citation Context ... collecting a sound set of dynamic dependencies. At present, the author does not know of a solution to this challenge. Powerful logics for programs that manipulate the heap, such as separation logic (=-=Reynolds, 2002-=-) and Hoare Type Theory (Nanevski et al., 2006; Chlipala et al., 2009), should provide good starting points. The author’s work on hidden state (Pottier, 2008; Pottier, 2009b) might provide some furthe... |

325 | A unified approach to global program optimization
- Kildall
- 1973
(Show Context)
Citation Context ...ich non-terminal symbols of a context-free grammar produce the empty word, and to compute “first” and “follow” sets. More generally, least fixed point computations are required in data flow analysis (=-=Kildall, 1973-=-; Kam & Ullman, 1976), abstract interpretation (Cousot & Cousot, 1977), and model checking of temporal logic formulae (Liu & Smolka, 1998). The simplest algorithm, known as Kleene iteration, computes ... |

128 | Global data flow analysis and iterative algorithms
- Kam, Ullman
- 1976
(Show Context)
Citation Context ...l symbols of a context-free grammar produce the empty word, and to compute “first” and “follow” sets. More generally, least fixed point computations are required in data flow analysis (Kildall, 1973; =-=Kam & Ullman, 1976-=-), abstract interpretation (Cousot & Cousot, 1977), and model checking of temporal logic formulae (Liu & Smolka, 1998). The simplest algorithm, known as Kleene iteration, computes a sequence of valuat... |

73 | Packrat parsing: simple, powerful, lazy, linear time, functional pearl - Ford - 2002 |

69 | Polymorphism and separation in Hoare Type Theory
- Nanevski, Morrisett, et al.
- 2006
(Show Context)
Citation Context ...ndencies. At present, the author does not know of a solution to this challenge. Powerful logics for programs that manipulate the heap, such as separation logic (Reynolds, 2002) and Hoare Type Theory (=-=Nanevski et al., 2006-=-; Chlipala et al., 2009), should provide good starting points. The author’s work on hidden state (Pottier, 2008; Pottier, 2009b) might provide some further clues. 4.2 Is there a purely functional impl... |

29 |
Effective interactive proofs for higher-order imperative programs
- Chlipala, Malecha, et al.
- 2009
(Show Context)
Citation Context ...approach, namely the use of a program logic in the style of Hoare, under a partial correctness interpretation. Tools that follow this approach include Pangolin (RégisGianas & Pottier, 2008) and Ynot (=-=Chlipala et al., 2009-=-). We assume that we know what it means for an ocaml value of type variable to implement a mathematical object v ∈ V, and for an ocaml value of type property to implement a mathematical object p ∈ P. ... |

24 | A faster solver for general systems of equations - Fecht, Seidl - 1999 |

23 |
Hiding local state in direct style: a higher-order anti-frame rule
- Pottier
- 2008
(Show Context)
Citation Context ...have in mind a plausible approach, namely the use of a program logic in the style of Hoare, under a partial correctness interpretation. Tools that follow this approach include Pangolin (RégisGianas & =-=Pottier, 2008-=-) and Ynot (Chlipala et al., 2009). We assume that we know what it means for an ocaml value of type variable to implement a mathematical object v ∈ V, and for an ocaml value of type property to implem... |

21 | Simple Linear-Time Algorithms for Minimal Fixed Points
- Liu, Smolka
- 1998
(Show Context)
Citation Context ... least fixed point computations are required in data flow analysis (Kildall, 1973; Kam & Ullman, 1976), abstract interpretation (Cousot & Cousot, 1977), and model checking of temporal logic formulae (=-=Liu & Smolka, 1998-=-). The simplest algorithm, known as Kleene iteration, computes a sequence of valuations, defined by φ0 = λv.⊥ and φn+1 = λv.E(v)(φn). That is, at each iteration, the right-hand side of every equation ... |

19 | When is a functional program not a functional program
- Longley
- 1999
(Show Context)
Citation Context ...rove the code partially correct with respect to a purely functional specification.12 F. Pottier 4 Comments 4.1 A formal proof challenge This is a functional program that is not a functional program (=-=Longley, 1999-=-), in the sense that the code is imperative, but strives to present a purely functional interface. In particular, we have used a “spy function”, request, in order to collect dynamic dependencies. Long... |

15 | A hoare logic for call-by-value functional programs - Régis-Gianas, Pottier - 2008 |

9 | Graph algorithms in a lazy functional programming language - Kashiwagi, Wise - 1991 |

2 | 2009a (July). Generalizing the higher-order frame and anti-frame rules - Pottier |

2 | A Hoare logic for call-by-value functional programs - Régis-Gianas, Pottier - 2008 |

1 |
An efficient general algorithm for dataflow analysis
- Demers, Horwitz, et al.
- 1987
(Show Context)
Citation Context ...s based on ocaml’s standard library module Queue, which provides FIFO ordering. One could just as well use Stack instead, which provides LIFO ordering, or a priority queue, with heuristic priorities (=-=Demers et al., 1987-=-). The workset offers just two functions (Figure 7). insert n inserts the node n into the workset. repeat f repeatedly applies the function f to a node extracted out of8 F. Pottier module Workset : s... |