Many programming languages in the OO tradition now support pattern matching in some form. Historical examples include Scala and Ceylon, with the more recent additions of Java, Kotlin, TypeScript, and Flow. But pattern matching on generic class hierarchies ...
We show that the satisfiability problem for the quantifier-free theory of product structures with the equicardinality relation is inNP. As an application, we extend the combinatory array logic fragmentto handle cardinality constraints. The resulting fragme ...
Over the past decade, the Scala community has shown great interest in using type-level programming to obtain additional type safety.
Unfortunately, the lack of support from the Scala compiler has been a barrier to the adoption of that technique, notably du ...
We present a quasilinear time algorithm to decide the word problem on a natural algebraic structures we call orthocomplemented bisemilattices, a subtheory of boolean algebra. We use as a base a variation of Hopcroft, Ullman and Aho algorithm for tree isomo ...
Concepts of type and typology are not specific to architecture. Rather they represent an interdisciplinary approach to ordering knowledge and gaining insight. In the field of architecture, the study of types and typology offers a didactic perspective that ...
We present an automated approach to verify the correctness of programming assignments, such as the ones that arise in a functional programming course. Our approach takes as input student submissions and reference solutions, and uses equivalence checking to ...