Skip to content

Instantly share code, notes, and snippets.

View paulcadman's full-sized avatar
💭
Studying Coq and HoTT

Paul Cadman paulcadman

💭
Studying Coq and HoTT
  • London
View GitHub Profile

Remote dependencies proposal

This document describes a proposal to add support for remote dependencies to the juvix build tool.

Current dependencies support

Juvix projects can currently depend on other Juvix projects that are stored on the local file system using the dependencies field in the project's juvix.yaml file:

@paulcadman
paulcadman / SketchSystems.spec
Last active August 24, 2018 10:53
Number Form*
Number Form*
Invalid*
select number -> Valid
Valid
submit -> Submitting
clear -> Invalid
Submitting
@paulcadman
paulcadman / idris_hands_on.md
Last active March 2, 2023 12:01
Curry-Howard in Idris

Types are theorems, programs are proofs.

(The code examples here use idris https://www.idris-lang.org)

To augment testing with a finite number of inputs we write mathematical proofs that demonstrate their correctness on all possible inputs.

The programmer writes the proofs and the compiler checks the proofs as it builds the software.

@paulcadman
paulcadman / fsm.swift
Last active July 14, 2018 19:25
FSM in swift
import Foundation
struct BasketItem {
var name: String
var price: Price
}
extension BasketItem: CustomStringConvertible {
var description: String {
return "Item \(self.name) \(self.price)"
@paulcadman
paulcadman / Feature.swift
Last active July 12, 2018 14:01
Feature Enum
enum Feature<T: Decodable>: Decodable {
case disabled
case enabled(configuration: T)
init(from decoder: Decoder) throws {
if let _ = try? EmptyObject.init(from: decoder) {
self = .disabled
return
}
Search Bar*
Inactive*
focus -> Active
Active
Loaded*
cancel -> Inactive
type -> Text Entry
Empty*
submit -> Error

Types are theorems, programs are proofs.

(The code examples here use idris https://www.idris-lang.org)

To augment testing with a finite number of inputs we write mathematical proofs that demonstrate their correctness on all possible inputs.

The programmer writes the proofs and the compiler checks the proofs as it builds the software.