FStarLang/FStar

Failure of type inference with repeated variables

Open

#1007 aperta il 21 apr 2017

Vedi su GitHub
 (3 commenti) (0 reazioni) (1 assegnatario)F* (258 fork)auto 404
area/proof-assistantcomponent/typecheckercomponent/unifiergood first issuekind/enhancementmilestone/everest-v1

Metriche repository

Star
 (3068 star)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

Lax-typechecking the following snippet

let f (x y : int) (w:(b:bool & (if b then equals x y else equals y x))) =
  match w with
  | (| b, Refl |) -> ()

fails with the error

(Error) (equals (?26524 x y w b) (?26524 x y w b)) is not a subtype of the expected type (match b with
	| true  -> (equals x y)
	|_  -> (equals y x))

Guida contributor