| import Lean | |
| opaque g (p : Prop) [Decidable p] (a : Nat) (h : a > 0) : Nat | |
| open Lean Meta | |
| def test (flag : Bool) : MetaM Unit := do | |
| let some congrThm ← mkCongrSimp? (mkConst ``g) (subsingletonInstImplicitRhs := flag) | throwError "failed to generate theorem" | |
| IO.println (← ppExpr congrThm.type) | |
| #eval test false | |
| #eval test true |