184 Hits in 1.8 sec

Implementing monads for C++ template metaprograms

Ábel Sinkovics, Zoltán Porkoláb
2013 Science of Computer Programming  
As another real world use case we have shown how the implementation of a compile-time parser generator library can be simplified by using monads.  ...  We have demonstrated how the library works by implementing several monads from Haskell to C++ template metaprogramming. We have shown two real world use cases.  ...  These implementations use comparison functions provided by Boost.MPL. The trait implementing the typeclass can be used to call functions related to a typeclass.  ... 
doi:10.1016/j.scico.2013.01.002 fatcat:uuzejtomfvgr5b7cmc2apvexye

Natural Language Specifications in Proof Assistants [article]

Colin S. Gordon, Sergey Matskevich
2022 arXiv   pre-print
Noun phrases and related syntactic categories must be parameterized by the semantic (Coq) type of entity they concern.  ...  This approach naturally supports an open-ended lexicon, which is essential to modularly extending the words handled by semantic parsing (Section 4).  ... 
arXiv:2205.07811v1 fatcat:jc4on2o4dfdjfnr2yrcjbdujye

The Marriage of Univalence and Parametricity [article]

Nicolas Tabareau, Éric Tanter, Matthieu Sozeau
2020 arXiv   pre-print
between functions over these types, in order to be able to lift more programs and proofs, as well as to yield more efficient terms.  ...  The combination of parametricity and univalence supports transport \'a la carte: basic univalent transport, which stems from a type equivalence, can be complemented with additional proofs of equivalences  ...  , any open term : is in univalent relation with its (black-box) transport of type .  ... 
arXiv:1909.05027v3 fatcat:bhzydmmuc5euxd2wz4cdnrmymu

Fusion for Free [chapter]

Nicolas Wu, Tom Schrijvers
2015 Lecture Notes in Computer Science  
At the heart of this optimization is keeping the notion of a free monad abstract, thus enabling a change of representation that opens up the possibility of fusion.  ...  This paper explains how a sequence of handlers can be fused into one, so that multiple tree traversals can be reduced to a single one and no intermediate trees need to be allocated.  ...  This work has been partially funded by the Flemish Fund for Scientific Research (FWO).  ... 
doi:10.1007/978-3-319-19797-5_15 fatcat:3pnkehpexvan3hfdjdfrvogjky

The Marriage of Univalence and Parametricity

Nicolas Tabareau, Éric Tanter, Matthieu Sozeau
2021 Journal of the ACM  
This work paves the way to easier-to-use proof assistants by supporting seamless programming and proving modulo equivalences.  ...  between functions over these types, in order to be able to transport more programs and proofs, as well as to yield more efficient terms.  ...  Next, to add this relation to the global context, we need to instrument typeclass resolution by defining the following hint, which will be used when looking for a function in relation with the plus function  ... 
doi:10.1145/3429979 fatcat:xrcsi5wjnbdunbm4djsqxfdbwq


Eric Kow
2006 Proceedings of the 2006 ACM SIGPLAN workshop on Haskell - Haskell '06  
Rather, we will focus on the aspects of functional programming (higher order functions, monads) and Haskell (typeclasses) that we found important to its design.  ...  Perhaps an updated, open source tool based on the Blobs diagram editor [20] could be a nice replacement.  ...  ., in which order the information should be conferred, and which are the different linguistic relations between the pieces of information that should be generated), the surface realisation module works  ... 
doi:10.1145/1159842.1159858 dblp:conf/haskell/Kow06 fatcat:lauajeggpveizn5oosamrrugau

Reasoning About CBV Functional Programs in Isabelle/HOL [chapter]

John Longley, Randy Pollack
2004 Lecture Notes in Computer Science  
The specification involves mathematical definitions of being an ordered list and being a permutation of another list, which are expressed in HOL using inductively defined relations.  ...  By proving, we mean machine checked proof in some formal logic.  ...  By HOL inductive definition we define order relations on NAT, e.g. the lessthan relation (syntax x[<]y).  ... 
doi:10.1007/978-3-540-30142-4_15 fatcat:otl5askg5velrliylxdyxc3ezi

A conceptual model of information supply

B. van Gils, H.A. Proper, P. van Bommel
2004 Data & Knowledge Engineering  
Rather than focusing on technologies that may be used to actually implement information supply, we focus on the question: what is information supply and how does it relate to the data (resources) found  ...  We would like to thank the reviewers for their usefull suggestions wich resulted in many improvements of this article.  ...  T ∈ RL, FE, RP [t, u ∈ T ] From the definition of TypeClass finally follows: TypeClass(t) = TypeClass(u) Type relatedness Types may be related to each other.  ... 
doi:10.1016/j.datak.2004.03.009 fatcat:zyfjub3d3nhr7ghbbe4aazx3y4

An approach to translating Haskell programs to Agda and reasoning about them [article]

Harold Carr, Christa Jenkins, Mark Moir, Victor Cacciari Miraldo, Lisandra Silva
2022 arXiv   pre-print
Agda implementation will be presented in a future paper.  ...  The library that we present is independent of our particular verification project, and is available, open-source, for others to use and extend.  ...  In some cases this occurred simply because side-by-side code reviews of the Agda identified improvements that could be made to the Haskell code.  ... 
arXiv:2205.08718v1 fatcat:alid5a3ddrc2lj6huouacfb5sa

Engaging, Large-Scale Functional Programming Education in Physical and Virtual Space

Kevin Kappelmann, Jonas Rädle, Lukas Stevens
2022 Electronic Proceedings in Theoretical Computer Science  
We explain and share our tools and exercises so that they can be reused by other educators.  ...  An example that includes the instance MonadFileSystem (State MockFileSystem) and a test can be found in the repository in resources/io mocking/typeclass.  ...  Questions could be answered and voted on by students as well as the moderator.  ... 
doi:10.4204/eptcs.363.6 fatcat:vqzrjbs5qjhqbgzphbtfvvyxii

The Coq Proof Assistant, version 8.10.0 [article]

The Coq Development Team
2019 Zenodo  
See Chapter SProp (proof irrelevant propositions) (#8817, by Gaëtan Gilbert).  ...  The unfolding heuristic in termination checking was made more complete, allowing more constants to be unfolded to discover valid recursive calls. Performance regression [...]  ...  This scope is opened by default.  ... 
doi:10.5281/zenodo.3476303 fatcat:nq2hvuywmre3xmbaqly2xxt6za


Prasad Naldurg, Stefan Schwoon, Sriram Rajamani, John Lambert
2006 Proceedings of the fourth ACM workshop on Formal methods in security - FMSE '06  
We devise an augmented relational calculus that naturally models both access control mechanisms and information-flow policies uniformly.  ...  We demonstrate the effectiveness of this modularity by analyzing two systems with very different mechanisms for access control-Windows XP and SELinux-with the same specification of information-flow vulnerabilities  ...  domains have over types (or classes), where the NeverAllow... predicates are used to deny permissions that would otherwise be granted by Unix DAC settings. • ResourceType and TypeClass: these provide the  ... 
doi:10.1145/1180337.1180343 dblp:conf/ccs/NaldurgSRL06 fatcat:h5tg2umezzc2fn523kh33wb23u

Hailstorm: A Statically-Typed, Purely Functional Language for IoT Applications

Abhiroop Sarkar, Mary Sheeran
2020 22nd International Symposium on Principles and Practice of Declarative Programming  
Applications running on these devices tend to be heavily dominated by I/O. Hailstorm tracks side effects likeI/O in its type system using resource types.  ...  The design of the full set of combinators is work in progress, driven by examples.  ...  We would also like to thank Henrik Nilsson and Joel Svensson for their valuable feedback on improving our paper.  ... 
doi:10.1145/3414080.3414092 dblp:conf/ppdp/SarkarS20 fatcat:xzihmlkcine65ix2q6i3kwf66u

Parsifal: A Pragmatic Solution to the Binary Parsing Problems

Olivier Levillain
2014 2014 IEEE Security and Privacy Workshops  
However, writing robust parsers can be difficult, as is revealed by the amount of bugs and vulnerabilities related to programming errors in parsers.  ...  PTypes Parsifal relies on the idea that tedious code should not be written by humans since it can be generated.  ...  Using typeclasses seemed to be a good way to automate code generation for parsing functions. As a matter, there exists a popular Haskell library, Parsec [Lei14] .  ... 
doi:10.1109/spw.2014.35 dblp:conf/sp/Levillain14 fatcat:yb5ngnekqfae7h7qtt3jfvk7ia

Bringing Iris into the Verified Software Toolchain [article]

William Mansky
2022 arXiv   pre-print
re-implemented in VST from the ground up; others (Iris Proof Mode) are imported from the Iris development; still others (proof rules for atomic operations) are axiomatized, with the hope that they will be  ...  By connecting to the verified compiler CompCert, it produces the strongest possible guarantees of correctness for real C code that we can compile and run.  ...  The logic of Iris is then proved to be an instance of this typeclass.  ... 
arXiv:2207.06574v2 fatcat:vdlurvlxovaezlpnovlm6zxwqm
« Previous Showing results 1 — 15 out of 184 results