Su CoQ: Perché la prova è completa dopo aver dimostrato solo per un'induzione quando abbiamo più di una variabile?
Domanda
Quindi sto imparando Coq. E mi sono imbattuto nella prova per l'associatività in aggiunta forall (a b c : nat)
apparentemente quando facciamo induction a.
dopo intros a b c.
, crea 2 subgoals
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?
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à.