Skip to content

Exploit: Injective type constructors and abstract prove false #2250

Closed
@andreasabel

Description

@andreasabel
{-# OPTIONS --injective-type-constructors #-}

open import Common.Prelude
open import Common.Equality

abstract
  f : Bool  Bool
  f x = true

  same : f true ≡ f false
  same = refl

not-same : f true ≡ f false  ⊥
not-same ()

absurd : ⊥
absurd = not-same same

Metadata

Metadata

Labels

abstractIssues relating to abstract blocksfalseProof of the empty type which checks without known-unsafe flags (e.g. without --type-in-type)injectivityInjectivity analysis for functions, application of injectivity during conversiontype: bugIssues and pull requests about actual bugsunificationUnification on the left-hand-side (not conversion checking)

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions