{"id":19243800,"url":"https://github.com/brocbyte/goedel-machine","last_synced_at":"2026-02-21T22:02:34.874Z","repository":{"id":134234593,"uuid":"403253223","full_name":"brocbyte/goedel-machine","owner":"brocbyte","description":"build a scientist better than me","archived":false,"fork":false,"pushed_at":"2021-09-16T13:26:56.000Z","size":2,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-25T12:30:31.618Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/brocbyte.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-09-05T08:20:38.000Z","updated_at":"2021-09-16T13:26:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"4b34e2a3-abff-4bb6-a6db-3610f1a1b4c7","html_url":"https://github.com/brocbyte/goedel-machine","commit_stats":null,"previous_names":["brocbyte/goedel-machine"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/brocbyte/goedel-machine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brocbyte%2Fgoedel-machine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brocbyte%2Fgoedel-machine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brocbyte%2Fgoedel-machine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brocbyte%2Fgoedel-machine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/brocbyte","download_url":"https://codeload.github.com/brocbyte/goedel-machine/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/brocbyte%2Fgoedel-machine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29694791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T18:18:25.093Z","status":"ssl_error","status_checked_at":"2026-02-21T18:18:22.435Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T17:19:47.778Z","updated_at":"2026-02-21T22:02:34.837Z","avatar_url":"https://github.com/brocbyte.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"## Gödel machines\n\nCan we build it?\n\n## Notes\n\n- goedel machines - universal problem solvers = solver (environment) + proof-searcher (rewrite itself for good)\n\n- p(1) - the initial software = e(1) + proof-search technique\n\n- e(1) - the original policy for interacting with the environment (problem-solver)\n\n### Proof searcher\n\n- makes pairs (switchprog, proof) until it finds a proof of a \"target theorem\", which says:\\\n  _\"the immediate rewrite of p through current program switchprog on the given machine implies higher utility than leaving p as is\"_\\\n  ==\u003e (we have global optimality from here)\n\n- uses online extension of Universal Search (Levin search?)\n\n- an axiomatic system A encoded in p(1):\n  \u003col type=\"a\"\u003e\n  \u003cli\u003e instruction semantics (hardware axioms) \u003c/li\u003e\n  \u003cli\u003e reward axioms \u003c/li\u003e\n  \u003cli\u003e environmant axioms \u003c/li\u003e\n  \u003cli\u003e uncertainty axioms; string manipulation \u003c/li\u003e\n  \u003cli\u003e initial state axioms \u003c/li\u003e\n  \u003cli\u003e the formal utility function u \u003c/li\u003e\n  \u003c/ol\u003e\n\n- ignores those self-improvements whose effectiveness it cannot prove\n\n- target theorem:\u003cbr\u003e\n    \u003e tt(s, t, switchprog) = [u(s, {wait_until(t), switchprog()}) \u003e u(s, {scheduler})]\n\n  or\n\n  \"is it useful to perform the switch at time t?\"\n\n- target theorem can be used in two ways:\n\n  1. generate a candidate switchprog, run (time-bounded) + evaluate\n  2. generate theorems from an axiomatic system, test them for equivalence with target theorem\n\n- initial algorithm can be Hutter's HSEARCH\n\n\n#### Instructions used by proof techniques\n\n1. **get-axiom(n)** - appends n-th possible axiom to the current proof \n2. **apply-rule(k, m, n)** - applies the k-th inference rule to the m-th and n-th thrm in the current proof, appends result\n3. **delete-theorem(m)** - deletes the m-th theorem in the currently stored proof\n4. **set-switchprog(m, n)** - sets switchprog := s[m:n]\n5. **check()** - tests whether the last theorem in proof is a target theorem\n6. **state2theorem(m, n)** - creates a theorem of the form s\\[m:n\\](t1) = z, where t1 - a time measured after state2theorem was invoked\n\n### Self-Reflective Systems\n\n\n\n### Links\n\n- Main page: https://people.idsia.ch/~juergen/goedelmachine.html\n\n- Concept: https://arxiv.org/pdf/cs/0309048.pdf\n\n- Towards an actual implementation: https://people.idsia.ch/~juergen/selfreflection.pdf\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrocbyte%2Fgoedel-machine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbrocbyte%2Fgoedel-machine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbrocbyte%2Fgoedel-machine/lists"}