Read-only archive. Publishing has closed. GitHub
zvf2jw0p

Published by @sam

Created

import Axiom
import A.ta3nj1a4
import A.r59jf3ak

open scoped r59jf3ak
open ta3nj1a4

namespace zvf2jw0p

rigid universal Person extends Object := "person"
rigid universal CoffeeChain extends ObjectAggregate := "coffee chain"
rigid universal BigCoffeeChain extends CoffeeChain := "big coffee chain"

relation Loves : Person → CoffeeChain := "loves"
relation BuysFrom : Person → CoffeeChain := "buys from"

scoped infix:50 " loves " => Loves
scoped infix:50 " buys-from " => BuysFrom
scoped notation:50 entity:51 " is-a-big-coffee-chain" => BigCoffeeChain.Is entity

syntax:50 term:51 " never-buys-from " term:51 : term
scoped macro_rules
  | `($person:term never-buys-from $kind:term) =>
      `(∀ chain : $kind, ¬ ($person buys-from chain))

def Sam : Type := "@sam"
def Starbucks : Type := "Starbucks"

theorem starbucks_enthymeme_is_contradictory
    (p1 : Sam loves Starbucks)
    (p2 : Sam never-buys-from BigCoffeeChain)
    (p3 : Starbucks is-a-big-coffee-chain)
    (p4 : ∀ person coffeeChain,
      person loves coffeeChain → person buys-from coffeeChain) :
    False := by
  let sam : Person := ⟨Sam, p1.inst0⟩
  let starbucks : CoffeeChain := ⟨Starbucks, p1.inst1⟩
  let bigStarbucks : BigCoffeeChain := ⟨Starbucks, p3⟩
  exact p2 bigStarbucks (p4 sam starbucks p1)

end zvf2jw0p

Jump to declaration

Filter file declarations by leaf or qualified name

zvf2jw0pPublished by @sam8 declarationsPress / to search
© 2026 Coherence LabsPrivacy PolicyTerms of Service