Domanda

Quindi sto imparando Coq. E mi sono imbattuto nella prova per l'associatività in aggiunta forall (a b c : nat)

 Inserire l'immagine Descrizione qui

apparentemente quando facciamo induction a. dopo intros a b c., crea 2 subgoals

 Inserire l'immagine Descrizione qui

E in seguito abbiamo semplicemente bisogno di dimostrare che i due lati in entrambi i subgoali sono equivalenti e la prova è completata.

Quindi mi chiedo solo perché non abbiamo bisogno di fare induction b. e induction c. per completare la prova? Perché solo eseguire l'induzione su a è in grado di completare la prova?

o in altre parole, come mai nella funzione che restituisce la prova, otteniamo solo b e c per "gratis"? Costruitivamente non abbiamo bisogno di qualcosa come una doppia induzione applicata due volte?

 Inserire l'immagine Descrizione qui

È stato utile?

Soluzione

Non fai avere per dimostrare le cose per induzione.Ad esempio, è possibile dimostrare $ \ forall n: \ mathbb {n} \,. \, N= n $ senza induzione applicandoriflessività.A proposito, usiamo induzione su $ a $ , ma poi non abbiamo bisogno di per utilizzare l'induzione su $ B $ e $ c $ Perché possiamo terminare la prova semplicemente utilizzando altri metodi.Noi potrebbe avere induzione usata su $ B $ e $ c $ , eDovresti provare a farlo, per vedere come le applicazioni non necessarie dell'induction rendono la tua prova più lunga e meno chiara.

P.S.Questo non ha assolutamente nulla a che fare con la costruttività.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top