Fatti
Roger D., nato nel 1933, è stato alle dipendenze della Compagnia A. dal 1° ottobre 1982 al 30 aprile 1986 ed è stato assicurato presso la Cooperativa per l'assicurazione del personale delle imprese di trasporto svizzere (ASCOOP) in questo periodo. Il 29 gennaio 1986 è stato licenziato con effetto dal 31 marzo 1986, ma la protezione contro il licenziamento è stata prorogata fino al 30 aprile 1986 a causa di un'incapacità lavorativa dal 26 febbraio al 9 marzo 1986. L'ASCOOP ha calcolato la prestazione di libero passaggio per Roger D. in 8'328 franchi, composti dal suo avere di risparmio di 7'792 franchi, da un capitale di ingresso di 372 franchi e da interessi di 164 franchi. Roger D. ha presentato una richiesta di pagamento di un importo aggiuntivo di 3'962 franchi, che egli rivendicava come contributi del datore di lavoro per il periodo dal 1° gennaio 1985 al 30 aprile 1986.
Legge
Il Tribunale federale afferma che nel calcolo della prestazione di libero passaggio di un istituto di previdenza che fornisce prestazioni superiori al minimo legale (cosiddetta "cassa di copertura"), devono essere confrontati due valori: 1) il valore dell'avere di vecchiaia acquisito secondo la LPP e 2) il valore del credito del lavoratore dipendente ai sensi degli artt. 331a o 331b CO. Il importo più elevato deve essere pagato all'assicurato. Occorre inoltre tenere conto che per il periodo precedente il 1° gennaio 1985 è determinante solo l'avere di vecchiaia a partire da tale data, mentre per il periodo precedente il credito del lavoratore dipendente deve essere calcolato secondo il CO.
Nel caso in questione, l'ASCOOP ha calcolato la prestazione di libero passaggio fino al 31 marzo 1986, mentre Roger D. e l'Ufficio federale delle…