في علوم الكمبيوتر، يُعد للتكرارالمشترك (Corecursion) نوعًا من العمليات التي تُعتبر مزدوجة للتكرار (recursion). فبينما يعمل التكرار بشكل تحليلي، يبدأ من البيانات الأبعد عن الحالة الأساسية ويُقسّمها إلى بيانات أصغر ويُكرّرها حتى الوصول إلى الحالة الأساسية، تعمل التكرارية (corecursion) بشكل اصطناعي، فتبدأ من الحالة الأساسية وتبني عليها، مُنتجةً بيانات متكررة أبعد عن الحالة الأساسية.ببساطة، تستخدم الخوارزميات التكرارية البيانات التي تُنتجها بنفسها، شيئًا فشيئًا، عندما تُصبح متاحة ومطلوبة، لإنتاج المزيد من البيانات. يُشير المفهوم المماثل ولكن المتميز إلى التكرار التوليدي(generative recursion)، والذي قد يفتقر إلى "اتجاه" محدد متأصل في التكرار المشترك والتكرار المتكرر.
بينما تسمح التكرارية (recursion) للبرامج بالعمل على بيانات معقدة بشكل تعسفي، شريطة أن يمكن اختزالها إلى بيانات بسيطة (حالات أساسية)، فإن التكرارية الأساسية (corecursion) تتيح للبرامج إنتاج هياكل بيانات معقدة بشكل تعسفي وربما لا نهائية، مثل التدفقات(streams). هذا ممكن طالما يمكن إنتاج هذه الهياكل من بيانات بسيطة (حالات أساسية) في تسلسل من الخطوات المحدودة.في حين أن التكرار قد لا ينتهي أبدًا، ولا يصل إلى حالة أساسية، يبدأ التكرار المشترك من حالة أساسية، وبالتالي يُنتج خطوات لاحقة بشكل حتمي، على الرغم من أنه قد يستمر إلى أجل غير مسمى (وبالتالي لا ينتهي في ظل التقييم الصارم)، أو قد يستهلك أكثر مما يُنتج فيصبح غير منتج. يمكن تفسير العديد من الوظائف التي تُحلل تقليديًا على أنها متكررة، بطريقة بديلة وربما أكثر طبيعية، على أنها وظائف متكررة مشتركة تنتهي في مرحلة معينة، مثل علاقات التكرار كـ العامل (factorial).
يمكن للتكرار المشترك (Corecursion) إنتاج هياكل بيانات محدودة وغير محدودة كنتائج، وقد يستخدم هياكل بيانات مرجعية ذاتية غالبًا ما يُستخدم التكرار المشترك جنبًا إلى جنب مع التقييم الكسول (lazy evaluation)، وذلك لإنتاج مجموعة فرعية محدودة فقط من بنية لا نهائية محتملة (بدلاً من محاولة إنتاج بنية لا نهائية بالكامل مرة واحدة). يُعد التكرار المشترك مفهومًا مهمًا بشكل خاص في البرمجة الوظيفية (functional programming)، حيث تسمح التكرارية الأساسية والبيانات المشتركة للغات الكلية بالعمل مع هياكل بيانات لا نهائية.