packages feed

MiniAgda-0.2022.3.11: test/succeed/BelowLeInfty.golden

MiniAgda by Andreas Abel and Karl Mehltretter
--- opening "BelowLeInfty.ma" ---
--- scope checking ---
--- type checking ---
type  Nat : +(i <= #) -> Set
term  Nat.zero : .[s!ze : Size] -> .[i < s!ze] -> Nat s!ze
term  Nat.zero : .[i <= #] -> < Nat.zero i : Nat $i >
term  Nat.succ : .[s!ze : Size] -> .[i < s!ze] -> ^(n : Nat i) -> Nat s!ze
term  Nat.succ : .[i <= #] -> ^(n : Nat i) -> < Nat.succ i n : Nat $i >
term  sib00 : (.[i : Size] -> Nat i) -> .[i : Size] -> Nat i
term  sib00 = \ x -> x
term  sib01 : (.[i : Size] -> Nat i) -> .[i < #] -> Nat i
term  sib01 = \ x -> x
term  sib11 : (.[i < #] -> Nat i) -> .[i < #] -> Nat i
term  sib11 = \ x -> x
block fails as expected, error message:
sib10
/// checkExpr 0 |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i
/// checkForced fromList [] |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i
/// new x : (.[i < #] -> Nat i)
/// checkExpr 1 |- x : .[i : Size] -> Nat i
/// leqVal' (subtyping)  .[i < #] -> < x i : Nat i >  <=+  .[i : Size] -> Nat i
/// leqVal' (subtyping)  < #  <=-  Size
/// leSize # <- #
/// leSize: # < # failed
term  sub00 : (.[i <= #] -> Nat i) -> .[i <= #] -> Nat i
term  sub00 = \ x -> x
term  sub01 : (.[i <= #] -> Nat i) -> .[i < #] -> Nat i
term  sub01 = \ x -> x
term  sub11 : (.[i < #] -> Nat i) -> .[i < #] -> Nat i
term  sub11 = \ x -> x
block fails as expected, error message:
sub10
/// checkExpr 0 |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i
/// checkForced fromList [] |- \ x -> x : (.[i < #] -> Nat i) -> .[i : Size] -> Nat i
/// new x : (.[i < #] -> Nat i)
/// checkExpr 1 |- x : .[i : Size] -> Nat i
/// leqVal' (subtyping)  .[i < #] -> < x i : Nat i >  <=+  .[i : Size] -> Nat i
/// leqVal' (subtyping)  < #  <=-  Size
/// leSize # <- #
/// leSize: # < # failed
term  sub1 : (.[i : Size] -> Nat i) -> .[i <= #] -> Nat i
term  sub1 = \ x -> x
term  sub2 : (.[i <= #] -> Nat i) -> .[i : Size] -> Nat i
term  sub2 = \ x -> x
type  MNat : +(i <= #) -> Set
term  MNat.mzero : .[s!ze : Size] -> .[i < s!ze] -> MNat s!ze
term  MNat.mzero : .[i : Size] -> < MNat.mzero i : MNat $i >
term  MNat.msucc : .[s!ze : Size] -> .[i < s!ze] -> ^(n : MNat i) -> MNat s!ze
term  MNat.msucc : .[i <= #] -> ^(n : MNat i) -> < MNat.msucc i n : MNat $i >
--- evaluating ---
--- closing "BelowLeInfty.ma" ---