Merge branch 'master' of gitlab.aliens-lyon.fr:savrillo/pieuvre
This commit is contained in:
commit
50e0046617
6
main.ml
6
main.ml
@ -176,8 +176,10 @@ while !subgoals <> [] do
|
||||
done;
|
||||
|
||||
let finalLam = !fill_holes [] in
|
||||
if (typecheck [] finalLam ty) then
|
||||
Printf.printf "Final proof :\n%s\n" (string_of_lam finalLam)
|
||||
if (typecheck [] finalLam ty) then (
|
||||
Printf.printf "Final proof :\n";
|
||||
reduce finalLam
|
||||
)
|
||||
else (
|
||||
Printf.printf "Invalid proof constructed!\n";
|
||||
Printf.printf "%s can't be typed with %s.\n" (string_of_lam finalLam) (string_of_ty ty);
|
||||
|
||||
@ -90,7 +90,7 @@ let rec alpha (l1: lam) (l2: lam) : bool =
|
||||
|
||||
(* Fait un pas de β-réduction, et renvoie None si on a une forme normale *)
|
||||
let rec betastep (l: lam) : lam option = match l with
|
||||
| LFun(v,t,l') -> betastep l'
|
||||
| LFun(v,t,l') -> Option.bind (betastep l') (fun l' -> Some (LFun(v,t,l')))
|
||||
| LApp(lf,lx) ->
|
||||
begin
|
||||
match (betastep lf) with
|
||||
@ -104,7 +104,7 @@ let rec betastep (l: lam) : lam option = match l with
|
||||
| _ -> None (* On ne peut pas β-réduire *)
|
||||
end
|
||||
| LVar(x) -> None
|
||||
| LExf(l',_) -> betastep l'
|
||||
| LExf(l',t) -> Option.bind (betastep l') (fun l' -> Some (LExf(l',t)))
|
||||
;;
|
||||
|
||||
(* Affiche les réductions du λ-terme l jusqu’à atteindre une forme normale, ou part en boucle infinie *)
|
||||
|
||||
10
tests/cut-impl.8pus
Normal file
10
tests/cut-impl.8pus
Normal file
@ -0,0 +1,10 @@
|
||||
(A -> B -> C) -> (B -> A -> C)
|
||||
intro f.
|
||||
intro b.
|
||||
intro a.
|
||||
cut (B -> C).
|
||||
intro bc.
|
||||
apply bc.
|
||||
assumption.
|
||||
apply f.
|
||||
assumption.
|
||||
Loading…
x
Reference in New Issue
Block a user