## Case analysis of higher-order data

### Cached

### Download Links

Citations: | 13 - 11 self |

### BibTeX

@MISC{Dunfield_caseanalysis,

author = {Joshua Dunfield and Brigitte Pientka},

title = {Case analysis of higher-order data},

year = {}

}

### OpenURL

### Abstract

Abstract. We discuss coverage checking for data that is dependently typed and is defined using higher-order abstract syntax. Unlike previous work on coverage checking that required objects to be closed, we consider open data objects, i.e. objects that may depend on some context. Our work may therefore provide insights into coverage checking in Twelf, and serve as a basis for coverage checking in functional languages such as Delphin and Beluga. More generally, our work is a foundation for proofs by case analysis in systems that reason about higher-order abstract syntax. 1

### Citations

707 | A framework for defining logics
- Harper, Honsel, et al.
- 1987
(Show Context)
Citation Context ... implication introduction can be elegantly modeled using higher-order functions (see Fig. 1). The power of higher-order abstract syntax encodings has been demonstrated within the logical framework LF =-=[4]-=- and its implementation in the Twelf system [9]. Most recently, HOAS encodings are supported in functional programming languages such as Elphin [15], Delphin [12], and Beluga [11]. In these systems, w... |

318 | System description: Twelf — A meta-logical framework for deductive systems
- Pfenning, Schürmann
- 1999
(Show Context)
Citation Context ...led using higher-order functions (see Fig. 1). The power of higher-order abstract syntax encodings has been demonstrated within the logical framework LF [4] and its implementation in the Twelf system =-=[9]-=-. Most recently, HOAS encodings are supported in functional programming languages such as Elphin [15], Delphin [12], and Beluga [11]. In these systems, we typically analyze higher-order data using pat... |

290 | A logic programming language with lambda-abstraction, function variables, and simple unification - Miller - 1991 |

176 | Towards a practical programming language based on dependent type theory
- Norell
- 2007
(Show Context)
Citation Context ... 2, inversion, and correctness of higher order matching. 5 Conclusion Most previous work on coverage checking, such as Coquand’s work [2] in the setting of Agda and later refinements of this approach =-=[5,8]-=-, has dealt with closed data objects. In the setting of logical frameworks, theoretical work on coverage also concentrated on closed objects [14]. In contrast, we have presented a framework for covera... |

85 | Pattern matching with dependent types
- Coquand
- 1992
(Show Context)
Citation Context ..., and emptiness is undecidable [5, p. 179]. In the setting of Beluga, empty types are useless, so there is no reason to worry about how coverage checking behaves with empty types. The work of Coquand =-=[2]-=- and of Schürmann and Pfenning [14] described coverage checking for closed terms. A theoretical treatment of coverage over open data objects has been left open. Coverage checking always requires some ... |

82 | Automating the Meta-Theory of Deductive Systems
- Schürmann
- 2000
(Show Context)
Citation Context ...out HOAS specifications when we split a goal into different cases. In this situation we also must generate an exhaustive set of cases. This issue arises in the Twelf system’s induction theorem prover =-=[13]-=-, and in systems such as Bedwyr [1] and Abella [3].s2 Numbers N, M ::= x | 0 | suc N Propositions A ::= N = M | A ⊃ B | ∀x.A Natural Deduction : Γ ⊢ nd A Γ, u : nd A ⊢ nd B Γ ⊢ nd A ⊃ B ⊃Iu Γ ⊢ nd A ⊃... |

78 | A Concurrent Logical Framework I: Judgments and Properties
- Watkins, Cervesato, et al.
- 2003
(Show Context)
Citation Context ...ojections. Perhaps most importantly, we formalize schemas, which classify contexts. We only characterize normal terms since only these are meaningful in the logical framework, following Watkins et al.=-=[17]-=- and Nanevski et al.[7]. This is achieved by distinguishing between normal terms M and neutral terms R. While the syntax only guarantees that terms N contain no βredexes, the typing rules will also gu... |

71 | Dependently Typed Functional Programs and Their Proofs
- McBride
- 1999
(Show Context)
Citation Context ... 2, inversion, and correctness of higher order matching. 5 Conclusion Most previous work on coverage checking, such as Coquand’s work [2] in the setting of Agda and later refinements of this approach =-=[5,8]-=-, has dealt with closed data objects. In the setting of logical frameworks, theoretical work on coverage also concentrated on closed objects [14]. In contrast, we have presented a framework for covera... |

60 |
Contextual modal type theory
- Nanevski, Pfenning, et al.
(Show Context)
Citation Context ... given data object. For a discussion of the computation level, see [11]. We essentially support the full logical framework LF plus Σ-types. Our data layer closely follows contextual modal type theory =-=[7]-=-, extended with parameter variables, substitution variables, and context variables [11], and finally with dependent pairs and projections. Perhaps most importantly, we formalize schemas, which classif... |

48 |
A type-theoretic foundation for programming with higher-order abstract syntax and first-class substitutions
- Pientka
- 2008
(Show Context)
Citation Context ... logical framework LF [4] and its implementation in the Twelf system [9]. Most recently, HOAS encodings are supported in functional programming languages such as Elphin [15], Delphin [12], and Beluga =-=[11]-=-. In these systems, we typically analyze higher-order data using pattern matching and case expressions. This requires us to validate that all possible cases are covered, i.e. the patterns are exhausti... |

41 | A coverage checking algorithm for LF
- Schürmann, Pfenning
- 2003
(Show Context)
Citation Context ...er to assumptions, i.e. open objects. While some systems like Twelf provide implementations that support case analysis on open objects, previous theoretical work on coverage dealt with closed objects =-=[14]-=- and a clean theoretical analysis has so far been lacking. For many Twelf users, this operation remains mysterious, and we hope our rational reconstruction is a step towards demystifying this operatio... |

35 | Higher-order rewriting with dependent types
- Virga
- 1999
(Show Context)
Citation Context ...idψ] and y—both of which are variables of type o, not of type nat—giving a direct correspondence to Z ′ , from which coverage is obvious. In practice, we can rely on techniques based on subordination =-=[16]-=- to eliminate the variable y in Suc u[idψ,x,y], since natural numbers do not include subterms of type o. DRAFT February 22, 2008—15:44 9s10 Note that we could also refine u[idψ,x,y] further by splitti... |

27 | Tabled Higher-Order Logic Programming
- Pientka
- 2003
(Show Context)
Citation Context ...and Ω;∆ ′ ;[[θ]]Ψ ⊢ [[θ]]P = [[θ]]Q and θ is the most general unifier, that is, for all ·; · ⊢ ρ : (Ω;∆) there exists θ ′ such that ρ = [[θ ′ ]]θ. Proof. The proof is a simple extension of the one in =-=[10]-=-. Lemma 1 (Object inversion). If ·; ·;Ψ ⊢ R ⇐ P and ⊢ Ψ : W then (1) R = c N1 ... Nk iff Σ(c) = Πx1:A1. · · · Πxk:Ak.P ′ and [N1/x1,...,Nk/xk]P ′ = P. (2) R = x N1 ... Nk iff Ψ(x) = Πx1:A1. · · · Πxk:... |

26 | Practical programming with higherorder encodings and dependent types - Poswolsky, Schürmann - 2008 |

25 | The ∇-Calculus. Functional Programming with Higher-Order Encodings
- Schürmann, Poswolsky, et al.
- 2005
(Show Context)
Citation Context ...as been demonstrated within the logical framework LF [4] and its implementation in the Twelf system [9]. Most recently, HOAS encodings are supported in functional programming languages such as Elphin =-=[15]-=-, Delphin [12], and Beluga [11]. In these systems, we typically analyze higher-order data using pattern matching and case expressions. This requires us to validate that all possible cases are covered,... |

21 | The Bedwyr system for model checking over syntactic expressions
- Baelde, Gacek, et al.
- 2007
(Show Context)
Citation Context ...t a goal into different cases. In this situation we also must generate an exhaustive set of cases. This issue arises in the Twelf system’s induction theorem prover [13], and in systems such as Bedwyr =-=[1]-=- and Abella [3].s2 Numbers N, M ::= x | 0 | suc N Propositions A ::= N = M | A ⊃ B | ∀x.A Natural Deduction : Γ ⊢ nd A Γ, u : nd A ⊢ nd B Γ ⊢ nd A ⊃ B ⊃Iu Γ ⊢ nd A ⊃ B Γ ⊢ nd A Γ ⊢ nd B ⊃E Γ ⊢ nd [a/x... |

15 | Combining generic judgments with recursive definitions
- Gacek, Miller, et al.
- 2008
(Show Context)
Citation Context ...ifferent cases. In this situation we also must generate an exhaustive set of cases. This issue arises in the Twelf system’s induction theorem prover [13], and in systems such as Bedwyr [1] and Abella =-=[3]-=-.s2 Numbers N, M ::= x | 0 | suc N Propositions A ::= N = M | A ⊃ B | ∀x.A Natural Deduction : Γ ⊢ nd A Γ, u : nd A ⊢ nd B Γ ⊢ nd A ⊃ B ⊃Iu Γ ⊢ nd A ⊃ B Γ ⊢ nd A Γ ⊢ nd B ⊃E Γ ⊢ nd [a/x]A Γ ⊢ nd (∀x.A... |

13 | Gopalan Nadathur, and Alwen Tiu. The Bedwyr system for model checking over syntactic expressions - Baelde, Gacek, et al. - 2007 |

9 | Gopalan Nadathur. Combining generic judgments with recursive definitions - Gacek, Miller - 2008 |

5 | A meta linear logical framework
- McCreight, Schürmann
- 2003
(Show Context)
Citation Context ...bstracting over contexts is an interesting and essential next step to allow recursion over higher-order abstract syntax. Context variables are declared in Ω. Unlike previous uses of context variables =-=[6]-=-, a context may contain at most one context variable. In the same way that types classify objects, and kinds classify types, we introduce the notion of a schema W that classifies contexts Ψ. We will r... |