From bb0c7ca2ab9b9067d370f4cfe4d1b3cb4537c2f2 Mon Sep 17 00:00:00 2001 From: Emile Date: Sun, 19 Feb 2023 14:02:02 +0100 Subject: caching view --- README.md | 4 ++++ cache.md | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ cache.pickle | Bin 4216 -> 6413 bytes solve.py | 4 ++-- 4 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 cache.md diff --git a/README.md b/README.md index 98e8c31..59f9ca7 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,10 @@ Exec solve script: --- +## Cache + +Caching implemented, view the current cache here: [cache.md](./cache.md) + ## Challenge Description Let's have some fun with Lambda Calculus! diff --git a/cache.md b/cache.md new file mode 100644 index 0000000..e786de0 --- /dev/null +++ b/cache.md @@ -0,0 +1,64 @@ +# Cache + +Here a readable dump, format: + +``` +((s, t), (goal_s, goal_t)) ['(v1)', '(v2)', '(v3)', ...] +``` + +``` +(('(λa. a a)', '(λa b. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λb a c c. (λc d. c))', '(λp. p (λe f. f) (λc d. c))', '(λa b. b)', '(λa b. b)'] +(('(λa. a a)', '(λa b. a b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b)', '(λp. p (λe f. f) (λc d. c))', '(λa b. b)'] +(('(λa b. a a)', '(λa b. b a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a b a)', '(λa b. b)'] +(('(λa b. a (b a))', '(λa b. a (a b))'), ('(λx y. x)', '(λx y. y)')) ['(λc d. c)', '(λa b c. b c a c)', '(λa b. a b a)', '(λa b c. b a a b)', '(λa b. b)', '(λa. (λc d. c))', '(λa b c. b c c a)'] +(('(λa. a a)', '(λa b. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. b a a c)', '(λb. (λe f. f))', '(λa. (λc d. c))', '(λa b. b)'] +(('(λa b. a b)', '(λa b. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. b c c b)', '(λp. p (λe f. f) (λc d. c))', '(λa b. a b a)', '(λa b. b)', '(λc d. c)'] +(('(λa b. a a)', '(λa. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a b a)', '(λb. (λe f. f))', '(λa b. a)', '(λa b. b a b)', '(λc d. c)', '(λa b. b)'] +(('(λa b. a (b a))', '(λa b. a (a a))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. b)', '(λa b c. a b b b)', '(λa b c. c c b b)', '(λa b. a a b)', '(λa b. a)', '(λa. a)', '(λa b. b)'] +(('(λa b. b b)', '(λa. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a)', '(λb. (λe f. f))', '(λc d. c)', '(λb a c c. (λc d. c))'] +(('(λa. a a)', '(λa b. b a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. b c c b)', '(λb. (λe f. f))', '(λb a c c. (λc d. c))', '(λa b. a a a)', '(λa b. b)', '(λc d. c)'] +(('(λa b. a (b a))', '(λa b. a (b b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a b b)', '(λa b. a)', '(λa. a)', '(λa b. a)', '(λa b. b)'] +(('(λa b. a (b b))', '(λa b. a (a a))'), ('(λx y. x)', '(λx y. y)')) ['(λa. a)', '(λa b. a)', '(λa b. b)'] +(('(λa b. a (b b))', '(λa b. a (b a))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa. a)', '(λb. (λe f. f))', '(λa b c. a b b c)', '(λa b c. c b c a)', '(λa b c. b c c a)', '(λa. (λc d. c))', '(λa b. b)'] +(('(λa b. a b)', '(λa. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b)', '(λb. (λe f. f))', '(λc d. c)'] +(('(λa b. a (a a))', '(λa b. a (a b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. b)', '(λb a c c. (λc d. c))', '(λa b. a)'] +(('(λa b. a (a b))', '(λa b. a (b b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b c. b b c c)', '(λa b. a b a)', '(λc d. c)', '(λa b. a)', '(λa b. a b a)', '(λa b. b)', '(λc d. c)'] +(('(λa b. b a)', '(λa. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. a b a a)', '(λp. p (λe f. f) (λc d. c))', '(λb. (λe f. f))', '(λa b. a)'] +(('(λa b. b b)', '(λa b. a b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b b a)', '(λa b. b)', '(λa. (λc d. c))', '(λa b c. b a b c)'] +(('(λa b. a b)', '(λa b. b a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. b c c c)', '(λa b c. b a c b)', '(λa b. b)', '(λa b. a)', '(λc d. c)'] +(('(λa b. b a)', '(λa b. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λb. (λe f. f))', '(λa b. b b a)', '(λc d. c)', '(λa b. b)', '(λa b c. a b c c)', '(λb. (λe f. f))', '(λc d. c)'] +(('(λa b. b b)', '(λa b. b a)'), ('(λx y. x)', '(λx y. y)')) ['(λe f. f)', '(λa b. a)', '(λa b. b)'] +(('(λa b. a (a b))', '(λa b. a (a a))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a b a)', '(λa. (λc d. c))', '(λa b. b)', '(λa b. b)'] +(('(λa b. a (a a))', '(λa b. a (b a))'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λa b c. b a c b)', '(λa b c. a a c b)'] +(('(λa b. b b)', '(λa b. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b a b)', '(λa b. b)', '(λa b c. c b a c)', '(λa. (λc d. c))', '(λa b. b a a)', '(λe f. f)'] +(('(λa b. a (b b))', '(λa b. a (a b))'), ('(λx y. x)', '(λx y. y)')) ['(λc d. c)', '(λa b. b)', '(λa b. a b b)', '(λc d. c)'] +(('(λa b. a (a a))', '(λa b. a (b b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λe f. f)', '(λb a c c. (λc d. c))', '(λa b. b)'] +(('(λa b. b a)', '(λa b. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λb. (λe f. f))', '(λc d. c)', '(λb. (λe f. f))', '(λp. p (λe f. f) (λc d. c))', '(λa b c. a c c b)', '(λa b. a)'] +(('(λa b. a b)', '(λa b. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λa b. b)', '(λa b c. c b a b)', '(λa b. a b a)', '(λp. p (λe f. f) (λc d. c))', '(λa b. b)', '(λe f. f)'] +(('(λa b. a a)', '(λa b. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. b)', '(λa b. a b a)', '(λc d. c)', '(λa b. b)'] +(('(λa b c. a a c)', '(λa b. a b)'), ('(λx y. x)', '(λx y. y)')) ['(λa. a)', '(λp. p (λe f. f) (λc d. c))', '(λa b. a)'] +(('(λa b. a (a b))', '(λa b. a (b a))'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λc d. c)'] +(('(λa b. a a)', '(λa b. a b)'), ('(λx y. x)', '(λx y. y)')) ['(λc d. c)', '(λa b. b)', '(λa b. b)'] +(('(λa b. a a)', '(λa b c. a c)'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λa b. b)', '(λa b. a b a)'] +(('(λa b. a b)', '(λa b c. a c b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b b b)', '(λe f. f)', '(λa b. a)'] +(('(λa b. b a)', '(λa b. a b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a b a)', '(λa b. b)', '(λa b. a)'] +(('(λa b c. b a a)', '(λa b. b a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. b b c b)', '(λa b. b)', '(λa b. b)', '(λa b c. c c b a)', '(λc d. c)', '(λa b. b)', '(λa. a)'] +(('(λa b. a a (a a b))', '(λa b c. a a (a a c))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a)', '(λa b. a a b)', '(λa b. a)', '(λa. a)', '(λp. p (λe f. f) (λc d. c))', '(λa. (λc d. c))', '(λc d. c)'] +(('(λa b. a b b)', '(λa b c. c b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b c. b c a b)', '(λa b. b)', '(λa b. a b a)', '(λa b. a)'] +(('(λa b. a λc. b c)', '(λa b. a λc. a c)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a a b)', '(λb a c c. (λc d. c))', '(λb. (λe f. f))', '(λa b c. a b b c)', '(λa b. a)'] +(('(λa b. a (λc. c a) a)', '(λa b. a (λc. c b b) a)'), ('(λx y. x)', '(λx y. y)')) ['(λa. a)', '(λa b. a b a)', '(λp. p (λe f. f) (λc d. c))', '(λa b. b)'] +(('(λa b c. b b)', '(λa b. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λb. (λe f. f))', '(λb a c c. (λc d. c))', '(λa b. a)', '(λa b. a)', '(λa. (λc d. c))', '(λa b. b)', '(λa b. b)'] +(('(λa b c. b (c a))', '(λa b c. b (c b))'), ('(λx y. x)', '(λx y. y)')) ['(λa. a)', '(λa b. a)', '(λa b. a)', '(λp. p (λe f. f) (λc d. c))', '(λa b c. b a a c)', '(λa b. b b a)', '(λa. (λc d. c))', '(λe f. f)', '(λa b. a b a)'] +(('(λa b c. a b b)', '(λa b. a a)'), ('(λx y. x)', '(λx y. y)')) ['(λe f. f)', '(λa b. a)', '(λa b. b)'] +(('(λa b. a (λc. b a (c c a)) a)', '(λa b. a (λc. b a (c a)) a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a b a)', '(λp. p (λe f. f) (λc d. c))'] +(('(λa b c. a (a b a))', '(λa b. a (a b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a a b)', '(λc d. c)', '(λe f. f)', '(λb a c c. (λc d. c))'] +(('(λa b. a (a a))', '(λa b c. a (c b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b a a)', '(λa b. a)', '(λp. p (λe f. f) (λc d. c))', '(λa b. b)'] +(('(λa. a a a)', '(λa b c. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λe f. f)', '(λa b. b b b)', '(λa b. b)', '(λa b. b b b)', '(λa b. a a b)', '(λa b. b)', '(λp. p (λe f. f) (λc d. c))', '(λc d. c)'] +(('(λa b c. b (c a b) a)', '(λa b c. b (c b a) a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b)', '(λc d. c)', '(λa b. b b b)'] +(('(λa b c. b (c b c) a)', '(λa b c. b (c b a) a)'), ('(λx y. x)', '(λx y. y)')) ['(λa. (λc d. c))', '(λp. p (λe f. f) (λc d. c))', '(λe f. f)', '(λa b. b)', '(λa b c. b a c a)'] +(('(λa b. a a)', '(λa b c. a b c)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. b)', '(λa b c. b c a b)'] +(('(λa b. a (λc. c c b) a)', '(λa b. a (λc. b c c) a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a)', '(λa b. a)', '(λa b. b)'] +(('(λa b. a (b b b))', '(λa b c. a (b a b))'), ('(λx y. x)', '(λx y. y)')) ['(λa b. b)', '(λa b. a a b)', '(λa. (λc d. c))', '(λa b. b)'] +(('(λa b c. a a b)', '(λa b. b b)'), ('(λx y. x)', '(λx y. y)')) ['(λp. p (λe f. f) (λc d. c))', '(λa b. b)', '(λa b. b)'] +(('(λa b. a (a b) a)', '(λa b. a (λc. a a b) a)'), ('(λx y. x)', '(λx y. y)')) ['(λa b. a b b)', '(λa b. b)', '(λb. (λe f. f))', '(λa b. a)'] +``` \ No newline at end of file diff --git a/cache.pickle b/cache.pickle index 321d73f..f99981e 100644 Binary files a/cache.pickle and b/cache.pickle differ diff --git a/solve.py b/solve.py index 82cf1f0..ed81c28 100644 --- a/solve.py +++ b/solve.py @@ -663,8 +663,8 @@ while True: with open('cache.pickle', 'wb') as handle: pickle.dump(cache, handle, protocol=pickle.HIGHEST_PROTOCOL) - for k, v in cache: - print(k, v) + for k in cache: + print(k, cache[k]) break -- cgit 1.4.1