prop 0.47.0

Propositional logic with types in Rust
Documentation
//! Finite sets.

use super::*;
use natp::{Nat, Succ, Zero};

/// A finite set.
#[derive(Copy, Clone)]
pub struct Fin(());

/// `fin : nat -> type(0)`.
pub fn fin_ty() -> Ty<Fin, Pow<Type<Zero>, Nat>> {unimplemented!()}

/// An empty set.
#[derive(Copy, Clone)]
pub struct Empty(());

/// `(n : nat)  =>  (empty : fin(n + 1))`.
pub fn empty_ty<N: Prop>(_n_ty: Ty<N, Nat>) -> Ty<Empty, App<Fin, Succ<N>>> {unimplemented!()}

/// A finite set.
#[derive(Copy, Clone)]
pub struct FinSucc(());

/// `(n : nat)  =>  fin_succ : fin(n) -> fin(n + 1)`.
pub fn fin_succ_ty<N: Prop>(_n_ty: Ty<N, Nat>) -> Ty<FinSucc, Pow<App<Fin, Succ<N>>, App<Fin, N>>>
{unimplemented!()}