This PR modifies the pretty printing of raw natural number literals; now both `pp.explicit` and `pp.natLit` enable the `nat_lit` prefix. An effect of this is that the hover on such a literal in the Infoview has the `nat_lit` prefix. Amendment to RFC #3021: In the reference-level explanation, now it should read > When `pp.natLit` and `pp.explicit` are false, then the `nat_lit n` expression delaborates as `n`, and otherwise it delaborates as `nat_lit n`.
25 lines
994 B
Text
25 lines
994 B
Text
def h : BV 32 → Array Bool :=
|
|
fun x => (fun x => g (f x).val) x
|
|
def r : Nat → Prop :=
|
|
fun a => if (a == 0) = true then (a != 1) = true else (a != 2) = true
|
|
def r : Nat → Prop :=
|
|
fun (a : Nat) =>
|
|
@ite.{1} Prop
|
|
(@Eq.{1} Bool
|
|
(@BEq.beq.{0} Nat (@instBEqOfDecidableEq.{0} Nat instDecidableEqNat) a
|
|
(@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))
|
|
Bool.true)
|
|
(instDecidableEqBool
|
|
(@BEq.beq.{0} Nat (@instBEqOfDecidableEq.{0} Nat instDecidableEqNat) a
|
|
(@OfNat.ofNat.{0} Nat (nat_lit 0) (instOfNatNat (nat_lit 0))))
|
|
Bool.true)
|
|
(@Eq.{1} Bool
|
|
(@bne.{0} Nat (@instBEqOfDecidableEq.{0} Nat instDecidableEqNat) a
|
|
(@OfNat.ofNat.{0} Nat (nat_lit 1) (instOfNatNat (nat_lit 1))))
|
|
Bool.true)
|
|
(@Eq.{1} Bool
|
|
(@bne.{0} Nat (@instBEqOfDecidableEq.{0} Nat instDecidableEqNat) a
|
|
(@OfNat.ofNat.{0} Nat (nat_lit 2) (instOfNatNat (nat_lit 2))))
|
|
Bool.true)
|
|
def s : Option Nat :=
|
|
myFun.f 3 <|> myFun.f 4
|