2016
DOI: 10.1017/s0956796816000307
|View full text |Cite
|
Sign up to set email alerts
|

Programming with ornaments

Abstract: Dependently typed programming advocates the use of various indexed versions of the same shape of data, but the formal relationship amongst these structurally similar datatypes usually needs to be established manually and tediously. Ornaments have been proposed as a formal mechanism to manage the relationships between such datatype variants. In this paper, we conduct a case study under an ornament framework; the case study concerns programming binomial heaps and their operations — including insertion and minimu… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
6
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
4
2
1

Relationship

1
6

Authors

Journals

citations
Cited by 11 publications
(6 citation statements)
references
References 22 publications
(48 reference statements)
0
6
0
Order By: Relevance
“…Using ornaments (Dagand, 2013; McBride, 2010 (unpublished)), we might be able to give a generic account of this construction. In particular, the work by Ko & Gibbons (2016) on binomial heaps would be a valuable starting point for such exploration.…”
Section: Discussionmentioning
confidence: 99%
“…Using ornaments (Dagand, 2013; McBride, 2010 (unpublished)), we might be able to give a generic account of this construction. In particular, the work by Ko & Gibbons (2016) on binomial heaps would be a valuable starting point for such exploration.…”
Section: Discussionmentioning
confidence: 99%
“…But this kind of guarantee is also achievable 'extrinsically' with proof assistants, where proofs are written explicitly and separately from programs -we know how to prove theorems saying that indices are always within bounds or that a program transformation always produces well-typed programs, and it is not hard to prove these theorems formally, especially with proof assistants that have decent automation [3,24]. What distinguishes dependently typed programming from other methodologies is that it makes the idea of interactive type-driven development much more powerful: the more properties we encode intrinsically into types, the more hints the type-checker can offer the programmer during an interactive development process, so that the more heavyweight typing becomes an aid rather than a burden [14,19,20].…”
Section: Interactive Type-driven Developmentmentioning
confidence: 99%
“…As illustrated in figure 6(a), placing a row is equivalent to transforming an input list as into a new one as and also a vertical edge b. We therefore introduce the following function fill IH for filling a row: 14 fill IH : {s :…”
Section: Horizontal Placementmentioning
confidence: 99%
“…Lifting functions and proofs necessitates some additional automation beyond the addition of ornaments to a language. So far, ornaments exist in various forms as deep embeddings in Agda (Dagand, 2017;Williams et al, 2014;Ko and Gibbons, 2016), and as tooling for proof reuse (Section 6.4.3) in Coq.…”
Section: Proof Organization and Scalabilitymentioning
confidence: 99%