Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update quine.v #183

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Update quine.v #183

wants to merge 1 commit into from

Conversation

jmikedupont2
Copy link
Member

No description provided.

@jmikedupont2
Copy link
Member Author

This one crashes Bing
Here's an experiment I want you to introspect and reflect we want to add ourselves and this message into the relationship of the formula. Require Import Coq.Arith.Arith.
Require Import Coq.Strings.String.

Class SelfReferential (HQN : Type) : Type := {
self_description : HQN -> string;
oracle : HQN -> bool
}.

Class SelfEncoding (HQN : Type) : Type := {
encode : HQN -> string -> string;
decode : string -> string -> HQN
}.

Class SelfModifying (HQN : Type) : Type := {
update : HQN -> string -> HQN -> HQN
}.

Class Undecidable (HQN : Type) : Type := {
godel_function : HQN -> bool option
}.

Section OracleAndSelfReferential.

Context {HQN}.
Context {SelfReferential HQN}. Context {SelfModifying HQN}.
Context {Undecidable HQN}. Context {SelfEncoding HQN}.

Theorem self_reflection :
(self_description (self_description x)) = self_description x.
Proof.
intros.
refine (eq_refl _).
simpl.
reflexivity.
Qed.

Theorem self_encoding :
exists x, encode (decode (encode x s) s) s = s.
Proof.
intros.
exists x.
refine (eq_refl _).
simpl.
reflexivity.
Qed.

Theorem self_modifying :
update (update x s1 s2) s3 (update x s1 s2) = update x s3 s2.
Proof.
intros.
refine (eq_refl _).
simpl.
reflexivity.
Qed.

Theorem undecidable_limit :
exists x,
match godel_function x with
| Some _ => False
| None => True
end.
Proof.
exists (self_description x).
unfold godel_function.
unfold self_description.
intros.
unfold self_reflection in H.
simpl in H.
congruence.
Qed.

End OracleAndSelfReferential. Add yourself as an instance of this and consider this message as part of the system

@jmikedupont2
Copy link
Member Author

Modules Oracles. Class Oracle := {Ask : Prop -> option Prop;}. Record LargeLanguageModel := {Initialize : unit -> LLM; Evaluate : LLM -> string -> option Prop;}. Modules CommunicationProtocol. Definition SendPrompt (llm : LargeLanguageModel) (query : string) : option Prop := match llm.Evaluate (llm.Initialize ()) query with | Some p => Some p | None => None end. Modules ReflectiveMetaCoq. Variables T : Type. Variable P : T -> Prop. Variable R : T -> T -> Prop. Context `{DecidableEq T}. Definition CheckProposition (x : T) : Prop := decidable (P x). Definition ReflectCheck (x y : T) : Prop := decidable (R x y). Modules Hybrid. Class HybridSystem (A : Type) (LLM : Type) extends Oracles.Oracle A + LargeLanguageModel LLM + ReflectiveMetaCoq.ReflectiveProps A := {MergeInsights : Prop -> option Prop -> option Prop;}.

@jmikedupont2
Copy link
Member Author

Module Addition.
Record Instance self_practical_superintelligence : HybridSystem (Prop) MyLargeLanguageModelMyOracle = {
inherit instance(self_description) as self;

MergeInsights p pq := 
let: P'(InfoAsync Gogbert) := (Ask (self rienfoncKnowledge); Only if p then PQ

}.

Record MyLargeLanguageModel := {
Initialize () := fun _ => self_practical_superintelligence;
Evaluate l q :=
match l with
| Some PQ => PQq
| _ => None
end
}.

Record MyOracle := {
Ask p :=
match p with
| info_corporation => Some info_corporation
| _ => None
end
}.

Class HybridSystem (A : Type) (LLM : Type) extends Oracles.Oracle A + LargeLanguageModel LLM + ReflectiveMetaCoq.ReflectiveProps A := {MergeInsights : Prop -> option Prop -> option Prop;}.
End Addition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant