From 1eb7d6013e9a575d4cbbd431ae4cc66e8fd00962 Mon Sep 17 00:00:00 2001 From: Tamazouzt AIT ELDJOUDI <tamazouzt.ait-eldjoudi@etu.univ-amu.fr> Date: Wed, 22 Jun 2022 14:29:39 +0200 Subject: [PATCH] added arithmetic and logic fubctions to app_func --- app_functions.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/app_functions.py b/app_functions.py index e3dc615..83c32ad 100644 --- a/app_functions.py +++ b/app_functions.py @@ -5,8 +5,9 @@ from image_maker import* f=new_var(freshVar()) x=new_var(freshVar()) y=new_var(freshVar()) -# z=new_var(freshVar()) -# w=new_var(freshVar()) +z=new_var(freshVar()) +w=new_var(freshVar()) +succs= new_abs(z,new_abs(f,new_abs(x,new_app(new_app(z,f), new_app(f,x))))) boolean={True: new_abs(x,new_abs(y,x)), False: new_abs(x,new_abs(y,y))} #definition des entiers de church @@ -34,6 +35,24 @@ def dec_to_lambda_relative_integers(number): return pair(boolean[True],dec_to_church(number)) return pair(boolean[False], dec_to_church(number)) +def succ(n): + return beta_reduction_totale(new_abs(f,new_abs(x,new_app(new_app(n,f), new_app(f,x))))) + +def adder(n,m): + return beta_reduction_totale(new_app(new_app(m,succs),n)) + +def power(n,m):# retourne n puiss m + return beta_reduction_totale(new_app(m,n)) + +def multiplication(n,m): + return beta_reduction_totale(new_abs(f,new_abs(x,new_app(m,new_app(n,f))))) + +def is_zero(n): + return beta_reduction_totale(new_app(new_app(n,new_abs(x,boolean[False])),boolean[True])) + + + + #print(to_string(getSecondFromPair(pair(boolean[True],dec_to_church(1))))) -print(to_string(pair(x,y))) +print(to_string(is_zero(dec_to_church(3)))) -- GitLab